kernel: bump 6.12 to 6.12.34
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.34 Remove upstreamed patches: generic/backport-6.12/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch [1] generic/backport-6.12/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch [2] generic/backport-6.12/610-06-v6.16-net-dsa-b53-do-not-enable-RGMII-delay-on-bcm63xx.patch [3] generic/backport-6.12/610-08-v6.16-net-dsa-b53-allow-RGMII-for-bcm63xx-RGMII-ports.patch [4] generic/backport-6.12/610-09-v6.16-net-dsa-b53-do-not-touch-DLL_IQQD-on-bcm53115.patch [5] generic/backport-6.12/611-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch [6] Manually rebased patches: bcm27xx/patches-6.12/950-0665-drm-vc4-tests-Drop-drm-parameter-for-vc4_find_crtc_f.patch [7] [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=408ca1d1803b223d615f9021055f9ccb4f4863ea [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=2a98786e258718ff93ef6d6bd26a9a39076e0cb7 [3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=6d1c93a5c6b0ae87bb7001d8d6fdef3b3be9c6c6 [4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=1aa31695bf0dc1ee3e6c559c14db7fd05b6bb102 [5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=b2fc08d276797e529cacad6fa9d704a7367090b5 [6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=2c32fc56c05aa69439fdfd5e0b25f57e2a158627 [7] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=aba86d49e5ac3700295ab8c417436abacc19cc32 Signed-off-by: Shiji Yang <yangshiji66@outlook.com> Link: https://github.com/openwrt/openwrt/pull/19184 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
bbd95c0523
commit
cb1b656027
34 changed files with 71 additions and 310 deletions
|
@ -25,7 +25,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||||
module_param_named(mousepoll, hid_mousepoll_interval, uint, 0644);
|
module_param_named(mousepoll, hid_mousepoll_interval, uint, 0644);
|
||||||
MODULE_PARM_DESC(mousepoll, "Polling interval of mice");
|
MODULE_PARM_DESC(mousepoll, "Polling interval of mice");
|
||||||
|
|
||||||
@@ -1114,7 +1114,9 @@ static int usbhid_start(struct hid_devic
|
@@ -1117,7 +1117,9 @@ static int usbhid_start(struct hid_devic
|
||||||
*/
|
*/
|
||||||
switch (hid->collection->usage) {
|
switch (hid->collection->usage) {
|
||||||
case HID_GD_MOUSE:
|
case HID_GD_MOUSE:
|
||||||
|
@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||||
interval = hid_mousepoll_interval;
|
interval = hid_mousepoll_interval;
|
||||||
break;
|
break;
|
||||||
case HID_GD_JOYSTICK:
|
case HID_GD_JOYSTICK:
|
||||||
@@ -1126,6 +1128,7 @@ static int usbhid_start(struct hid_devic
|
@@ -1129,6 +1131,7 @@ static int usbhid_start(struct hid_devic
|
||||||
interval = hid_kbpoll_interval;
|
interval = hid_kbpoll_interval;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -315,7 +315,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||||
ddc = of_parse_phandle(dev->of_node, "ddc-i2c-bus", 0);
|
ddc = of_parse_phandle(dev->of_node, "ddc-i2c-bus", 0);
|
||||||
if (ddc) {
|
if (ddc) {
|
||||||
panel->ddc = of_find_i2c_adapter_by_node(ddc);
|
panel->ddc = of_find_i2c_adapter_by_node(ddc);
|
||||||
@@ -2262,6 +2243,32 @@ static const struct panel_desc friendlya
|
@@ -2263,6 +2244,32 @@ static const struct panel_desc friendlya
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -348,7 +348,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||||
static const struct drm_display_mode giantplus_gpg482739qs5_mode = {
|
static const struct drm_display_mode giantplus_gpg482739qs5_mode = {
|
||||||
.clock = 9000,
|
.clock = 9000,
|
||||||
.hdisplay = 480,
|
.hdisplay = 480,
|
||||||
@@ -2442,6 +2449,38 @@ static const struct panel_desc innolux_a
|
@@ -2443,6 +2450,38 @@ static const struct panel_desc innolux_a
|
||||||
.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
|
.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -387,7 +387,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||||
static const struct drm_display_mode innolux_at070tn92_mode = {
|
static const struct drm_display_mode innolux_at070tn92_mode = {
|
||||||
.clock = 33333,
|
.clock = 33333,
|
||||||
.hdisplay = 800,
|
.hdisplay = 800,
|
||||||
@@ -3855,6 +3894,31 @@ static const struct panel_desc rocktech_
|
@@ -3856,6 +3895,31 @@ static const struct panel_desc rocktech_
|
||||||
.connector_type = DRM_MODE_CONNECTOR_DPI,
|
.connector_type = DRM_MODE_CONNECTOR_DPI,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -419,7 +419,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||||
static const struct display_timing rocktech_rk070er9427_timing = {
|
static const struct display_timing rocktech_rk070er9427_timing = {
|
||||||
.pixelclock = { 26400000, 33300000, 46800000 },
|
.pixelclock = { 26400000, 33300000, 46800000 },
|
||||||
.hactive = { 800, 800, 800 },
|
.hactive = { 800, 800, 800 },
|
||||||
@@ -4799,6 +4863,9 @@ static const struct of_device_id platfor
|
@@ -4800,6 +4864,9 @@ static const struct of_device_id platfor
|
||||||
.compatible = "friendlyarm,hd702e",
|
.compatible = "friendlyarm,hd702e",
|
||||||
.data = &friendlyarm_hd702e,
|
.data = &friendlyarm_hd702e,
|
||||||
}, {
|
}, {
|
||||||
|
@ -429,7 +429,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||||
.compatible = "giantplus,gpg482739qs5",
|
.compatible = "giantplus,gpg482739qs5",
|
||||||
.data = &giantplus_gpg482739qs5
|
.data = &giantplus_gpg482739qs5
|
||||||
}, {
|
}, {
|
||||||
@@ -4820,6 +4887,9 @@ static const struct of_device_id platfor
|
@@ -4821,6 +4888,9 @@ static const struct of_device_id platfor
|
||||||
.compatible = "innolux,at043tn24",
|
.compatible = "innolux,at043tn24",
|
||||||
.data = &innolux_at043tn24,
|
.data = &innolux_at043tn24,
|
||||||
}, {
|
}, {
|
||||||
|
@ -439,7 +439,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||||
.compatible = "innolux,at070tn92",
|
.compatible = "innolux,at070tn92",
|
||||||
.data = &innolux_at070tn92,
|
.data = &innolux_at070tn92,
|
||||||
}, {
|
}, {
|
||||||
@@ -4979,6 +5049,9 @@ static const struct of_device_id platfor
|
@@ -4980,6 +5050,9 @@ static const struct of_device_id platfor
|
||||||
.compatible = "rocktech,rk043fn48h",
|
.compatible = "rocktech,rk043fn48h",
|
||||||
.data = &rocktech_rk043fn48h,
|
.data = &rocktech_rk043fn48h,
|
||||||
}, {
|
}, {
|
||||||
|
@ -449,7 +449,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||||
.compatible = "rocktech,rk070er9427",
|
.compatible = "rocktech,rk070er9427",
|
||||||
.data = &rocktech_rk070er9427,
|
.data = &rocktech_rk070er9427,
|
||||||
}, {
|
}, {
|
||||||
@@ -5335,6 +5408,9 @@ static const struct panel_desc_dsi osd10
|
@@ -5336,6 +5409,9 @@ static const struct panel_desc_dsi osd10
|
||||||
.lanes = 4,
|
.lanes = 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -459,7 +459,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||||
static const struct of_device_id dsi_of_match[] = {
|
static const struct of_device_id dsi_of_match[] = {
|
||||||
{
|
{
|
||||||
.compatible = "auo,b080uan01",
|
.compatible = "auo,b080uan01",
|
||||||
@@ -5358,20 +5434,137 @@ static const struct of_device_id dsi_of_
|
@@ -5359,20 +5435,137 @@ static const struct of_device_id dsi_of_
|
||||||
.compatible = "osddisplays,osd101t2045-53ts",
|
.compatible = "osddisplays,osd101t2045-53ts",
|
||||||
.data = &osd101t2045_53ts
|
.data = &osd101t2045_53ts
|
||||||
}, {
|
}, {
|
||||||
|
|
|
@ -48,7 +48,7 @@ Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
|
||||||
#ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE
|
#ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE
|
||||||
unsigned int pageblock_order __read_mostly;
|
unsigned int pageblock_order __read_mostly;
|
||||||
#endif
|
#endif
|
||||||
@@ -2269,12 +2290,13 @@ __rmqueue(struct zone *zone, unsigned in
|
@@ -2265,12 +2286,13 @@ __rmqueue(struct zone *zone, unsigned in
|
||||||
if (IS_ENABLED(CONFIG_CMA)) {
|
if (IS_ENABLED(CONFIG_CMA)) {
|
||||||
/*
|
/*
|
||||||
* Balance movable allocations between regular and CMA areas by
|
* Balance movable allocations between regular and CMA areas by
|
||||||
|
|
|
@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||||
|
|
||||||
--- a/net/bluetooth/hci_sync.c
|
--- a/net/bluetooth/hci_sync.c
|
||||||
+++ b/net/bluetooth/hci_sync.c
|
+++ b/net/bluetooth/hci_sync.c
|
||||||
@@ -4866,6 +4866,7 @@ static const struct {
|
@@ -4877,6 +4877,7 @@ static const struct {
|
||||||
*/
|
*/
|
||||||
static int hci_dev_setup_sync(struct hci_dev *hdev)
|
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;
|
int ret = 0;
|
||||||
bool invalid_bdaddr;
|
bool invalid_bdaddr;
|
||||||
size_t i;
|
size_t i;
|
||||||
@@ -4894,7 +4895,8 @@ static int hci_dev_setup_sync(struct hci
|
@@ -4905,7 +4906,8 @@ static int hci_dev_setup_sync(struct hci
|
||||||
test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
|
test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&
|
if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&
|
||||||
|
|
|
@ -12,7 +12,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
|
||||||
|
|
||||||
--- a/drivers/mmc/host/sdhci-of-dwcmshc.c
|
--- a/drivers/mmc/host/sdhci-of-dwcmshc.c
|
||||||
+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
|
+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
|
||||||
@@ -1212,7 +1212,11 @@ static const struct dwcmshc_pltfm_data s
|
@@ -1236,7 +1236,11 @@ static const struct dwcmshc_pltfm_data s
|
||||||
.quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
|
.quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
|
||||||
SDHCI_QUIRK_BROKEN_TIMEOUT_VAL,
|
SDHCI_QUIRK_BROKEN_TIMEOUT_VAL,
|
||||||
.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
|
.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
|
||||||
|
|
|
@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||||
|
|
||||||
--- a/drivers/mmc/host/sdhci-of-dwcmshc.c
|
--- a/drivers/mmc/host/sdhci-of-dwcmshc.c
|
||||||
+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
|
+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
|
||||||
@@ -220,6 +220,7 @@ struct rk35xx_priv {
|
@@ -221,6 +221,7 @@ struct rk35xx_priv {
|
||||||
|
|
||||||
struct dwcmshc_priv {
|
struct dwcmshc_priv {
|
||||||
struct clk *bus_clk;
|
struct clk *bus_clk;
|
||||||
|
@ -30,7 +30,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||||
int vendor_specific_area1; /* P_VENDOR_SPECIFIC_AREA1 reg */
|
int vendor_specific_area1; /* P_VENDOR_SPECIFIC_AREA1 reg */
|
||||||
int vendor_specific_area2; /* P_VENDOR_SPECIFIC_AREA2 reg */
|
int vendor_specific_area2; /* P_VENDOR_SPECIFIC_AREA2 reg */
|
||||||
|
|
||||||
@@ -288,6 +289,17 @@ static void dwcmshc_adma_write_desc(stru
|
@@ -289,6 +290,17 @@ static void dwcmshc_adma_write_desc(stru
|
||||||
sdhci_adma_write_desc(host, desc, addr, len, cmd);
|
sdhci_adma_write_desc(host, desc, addr, len, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||||
static unsigned int dwcmshc_get_max_clock(struct sdhci_host *host)
|
static unsigned int dwcmshc_get_max_clock(struct sdhci_host *host)
|
||||||
{
|
{
|
||||||
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
|
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
|
||||||
@@ -1114,10 +1126,11 @@ static int sg2042_init(struct device *de
|
@@ -1138,10 +1150,11 @@ static int sg2042_init(struct device *de
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct sdhci_ops sdhci_dwcmshc_ops = {
|
static const struct sdhci_ops sdhci_dwcmshc_ops = {
|
||||||
|
@ -61,7 +61,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||||
.reset = sdhci_reset,
|
.reset = sdhci_reset,
|
||||||
.adma_write_desc = dwcmshc_adma_write_desc,
|
.adma_write_desc = dwcmshc_adma_write_desc,
|
||||||
.irq = dwcmshc_cqe_irq_handler,
|
.irq = dwcmshc_cqe_irq_handler,
|
||||||
@@ -1190,8 +1203,10 @@ static const struct sdhci_ops sdhci_dwcm
|
@@ -1214,8 +1227,10 @@ static const struct sdhci_ops sdhci_dwcm
|
||||||
static const struct dwcmshc_pltfm_data sdhci_dwcmshc_pdata = {
|
static const struct dwcmshc_pltfm_data sdhci_dwcmshc_pdata = {
|
||||||
.pdata = {
|
.pdata = {
|
||||||
.ops = &sdhci_dwcmshc_ops,
|
.ops = &sdhci_dwcmshc_ops,
|
||||||
|
@ -74,7 +74,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1206,6 +1221,15 @@ static const struct dwcmshc_pltfm_data s
|
@@ -1230,6 +1245,15 @@ static const struct dwcmshc_pltfm_data s
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||||
static const struct dwcmshc_pltfm_data sdhci_dwcmshc_rk35xx_pdata = {
|
static const struct dwcmshc_pltfm_data sdhci_dwcmshc_rk35xx_pdata = {
|
||||||
.pdata = {
|
.pdata = {
|
||||||
.ops = &sdhci_dwcmshc_rk35xx_ops,
|
.ops = &sdhci_dwcmshc_rk35xx_ops,
|
||||||
@@ -1317,6 +1341,10 @@ dsbl_cqe_caps:
|
@@ -1353,6 +1377,10 @@ dsbl_cqe_caps:
|
||||||
|
|
||||||
static const struct of_device_id sdhci_dwcmshc_dt_ids[] = {
|
static const struct of_device_id sdhci_dwcmshc_dt_ids[] = {
|
||||||
{
|
{
|
||||||
|
@ -101,7 +101,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||||
.compatible = "rockchip,rk3588-dwcmshc",
|
.compatible = "rockchip,rk3588-dwcmshc",
|
||||||
.data = &sdhci_dwcmshc_rk35xx_pdata,
|
.data = &sdhci_dwcmshc_rk35xx_pdata,
|
||||||
},
|
},
|
||||||
@@ -1405,13 +1433,32 @@ static int dwcmshc_probe(struct platform
|
@@ -1445,13 +1473,32 @@ static int dwcmshc_probe(struct platform
|
||||||
priv->bus_clk = devm_clk_get(dev, "bus");
|
priv->bus_clk = devm_clk_get(dev, "bus");
|
||||||
if (!IS_ERR(priv->bus_clk))
|
if (!IS_ERR(priv->bus_clk))
|
||||||
clk_prepare_enable(priv->bus_clk);
|
clk_prepare_enable(priv->bus_clk);
|
||||||
|
@ -134,7 +134,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||||
|
|
||||||
priv->vendor_specific_area1 =
|
priv->vendor_specific_area1 =
|
||||||
sdhci_readl(host, DWCMSHC_P_VENDOR_AREA1) & DWCMSHC_AREA1_MASK;
|
sdhci_readl(host, DWCMSHC_P_VENDOR_AREA1) & DWCMSHC_AREA1_MASK;
|
||||||
@@ -1471,6 +1518,7 @@ err_rpm:
|
@@ -1511,6 +1558,7 @@ err_rpm:
|
||||||
pm_runtime_put_noidle(dev);
|
pm_runtime_put_noidle(dev);
|
||||||
err_clk:
|
err_clk:
|
||||||
clk_disable_unprepare(pltfm_host->clk);
|
clk_disable_unprepare(pltfm_host->clk);
|
||||||
|
|
|
@ -55,7 +55,7 @@ Signed-off-by: Ratchanan Srirattanamet <peathot@hotmail.com>
|
||||||
|
|
||||||
--- a/drivers/iommu/Kconfig
|
--- a/drivers/iommu/Kconfig
|
||||||
+++ b/drivers/iommu/Kconfig
|
+++ b/drivers/iommu/Kconfig
|
||||||
@@ -519,4 +519,11 @@ config SPRD_IOMMU
|
@@ -518,4 +518,11 @@ config SPRD_IOMMU
|
||||||
|
|
||||||
Say Y here if you want to use the multimedia devices listed above.
|
Say Y here if you want to use the multimedia devices listed above.
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||||
|
|
||||||
--- a/net/bluetooth/hci_sync.c
|
--- a/net/bluetooth/hci_sync.c
|
||||||
+++ b/net/bluetooth/hci_sync.c
|
+++ b/net/bluetooth/hci_sync.c
|
||||||
@@ -4866,7 +4866,8 @@ static const struct {
|
@@ -4877,7 +4877,8 @@ static const struct {
|
||||||
*/
|
*/
|
||||||
static int hci_dev_setup_sync(struct hci_dev *hdev)
|
static int hci_dev_setup_sync(struct hci_dev *hdev)
|
||||||
{
|
{
|
||||||
|
|
|
@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||||
|
|
||||||
--- a/drivers/firmware/Kconfig
|
--- a/drivers/firmware/Kconfig
|
||||||
+++ b/drivers/firmware/Kconfig
|
+++ b/drivers/firmware/Kconfig
|
||||||
@@ -120,6 +120,15 @@ config RASPBERRYPI_FIRMWARE
|
@@ -119,6 +119,15 @@ config RASPBERRYPI_FIRMWARE
|
||||||
This option enables support for communicating with the firmware on the
|
This option enables support for communicating with the firmware on the
|
||||||
Raspberry Pi.
|
Raspberry Pi.
|
||||||
|
|
||||||
|
|
|
@ -32,24 +32,24 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||||
KUNIT_ASSERT_EQ(test, hweight32(encoder->possible_crtcs), 1);
|
KUNIT_ASSERT_EQ(test, hweight32(encoder->possible_crtcs), 1);
|
||||||
--- a/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
|
--- a/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
|
||||||
+++ b/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
|
+++ b/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
|
||||||
@@ -77,7 +77,7 @@ int vc4_mock_atomic_add_output(struct ku
|
@@ -78,7 +78,7 @@ int vc4_mock_atomic_add_output(struct ku
|
||||||
encoder = vc4_find_encoder_by_type(drm, type);
|
if (!encoder)
|
||||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, encoder);
|
return -ENODEV;
|
||||||
|
|
||||||
- crtc = vc4_find_crtc_for_encoder(test, drm, encoder);
|
- crtc = vc4_find_crtc_for_encoder(test, drm, encoder);
|
||||||
+ crtc = vc4_find_crtc_for_encoder(test, encoder);
|
+ crtc = vc4_find_crtc_for_encoder(test, encoder);
|
||||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc);
|
if (!crtc)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
output = encoder_to_vc4_dummy_output(encoder);
|
@@ -122,7 +122,7 @@ int vc4_mock_atomic_del_output(struct ku
|
||||||
@@ -115,7 +115,7 @@ int vc4_mock_atomic_del_output(struct ku
|
if (!encoder)
|
||||||
encoder = vc4_find_encoder_by_type(drm, type);
|
return -ENODEV;
|
||||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, encoder);
|
|
||||||
|
|
||||||
- crtc = vc4_find_crtc_for_encoder(test, drm, encoder);
|
- crtc = vc4_find_crtc_for_encoder(test, drm, encoder);
|
||||||
+ crtc = vc4_find_crtc_for_encoder(test, encoder);
|
+ crtc = vc4_find_crtc_for_encoder(test, encoder);
|
||||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc);
|
if (!crtc)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
crtc_state = drm_atomic_get_crtc_state(state, crtc);
|
|
||||||
--- a/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
|
--- a/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
|
||||||
+++ b/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
|
+++ b/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
|
||||||
@@ -131,7 +131,7 @@ get_vc4_crtc_state_for_encoder(struct ku
|
@@ -131,7 +131,7 @@ get_vc4_crtc_state_for_encoder(struct ku
|
||||||
|
|
|
@ -49,7 +49,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||||
{
|
{
|
||||||
struct drm_device *drm = state->dev;
|
struct drm_device *drm = state->dev;
|
||||||
struct drm_connector_state *conn_state;
|
struct drm_connector_state *conn_state;
|
||||||
@@ -96,7 +97,7 @@ int vc4_mock_atomic_add_output(struct ku
|
@@ -102,7 +103,7 @@ int vc4_mock_atomic_add_output(struct ku
|
||||||
|
|
||||||
crtc_state->active = true;
|
crtc_state->active = true;
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||||
|
|
||||||
--- a/drivers/mmc/host/sdhci-of-dwcmshc.c
|
--- a/drivers/mmc/host/sdhci-of-dwcmshc.c
|
||||||
+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
|
+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
|
||||||
@@ -1221,13 +1221,15 @@ static const struct dwcmshc_pltfm_data s
|
@@ -1245,13 +1245,15 @@ static const struct dwcmshc_pltfm_data s
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
From 5ad20e3d8cfe3b2e42bbddc7e0ebaa74479bb589 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
|
||||||
Date: Thu, 29 May 2025 15:09:14 +0200
|
|
||||||
Subject: [PATCH] spi: bcm63xx-spi: fix shared reset
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Some bmips SoCs (bcm6362, bcm63268) share the same SPI reset for both SPI
|
|
||||||
and HSSPI controllers, so reset shouldn't be exclusive.
|
|
||||||
|
|
||||||
Fixes: 38807adeaf1e ("spi: bcm63xx-spi: add reset support")
|
|
||||||
Reported-by: Jonas Gorski <jonas.gorski@gmail.com>
|
|
||||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
|
||||||
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
|
||||||
Link: https://patch.msgid.link/20250529130915.2519590-2-noltari@gmail.com
|
|
||||||
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
||||||
---
|
|
||||||
drivers/spi/spi-bcm63xx.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/drivers/spi/spi-bcm63xx.c
|
|
||||||
+++ b/drivers/spi/spi-bcm63xx.c
|
|
||||||
@@ -523,7 +523,7 @@ static int bcm63xx_spi_probe(struct plat
|
|
||||||
return PTR_ERR(clk);
|
|
||||||
}
|
|
||||||
|
|
||||||
- reset = devm_reset_control_get_optional_exclusive(dev, NULL);
|
|
||||||
+ reset = devm_reset_control_get_optional_shared(dev, NULL);
|
|
||||||
if (IS_ERR(reset))
|
|
||||||
return PTR_ERR(reset);
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
From 3d6d84c8f2f66d3fd6a43a1e2ce8e6b54c573960 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
|
||||||
Date: Thu, 29 May 2025 15:09:15 +0200
|
|
||||||
Subject: [PATCH] spi: bcm63xx-hsspi: fix shared reset
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Some bmips SoCs (bcm6362, bcm63268) share the same SPI reset for both SPI
|
|
||||||
and HSSPI controllers, so reset shouldn't be exclusive.
|
|
||||||
|
|
||||||
Fixes: 0eeadddbf09a ("spi: bcm63xx-hsspi: add reset support")
|
|
||||||
Reported-by: Jonas Gorski <jonas.gorski@gmail.com>
|
|
||||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
|
||||||
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
|
||||||
Link: https://patch.msgid.link/20250529130915.2519590-3-noltari@gmail.com
|
|
||||||
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
||||||
---
|
|
||||||
drivers/spi/spi-bcm63xx-hsspi.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/drivers/spi/spi-bcm63xx-hsspi.c
|
|
||||||
+++ b/drivers/spi/spi-bcm63xx-hsspi.c
|
|
||||||
@@ -745,7 +745,7 @@ static int bcm63xx_hsspi_probe(struct pl
|
|
||||||
if (IS_ERR(clk))
|
|
||||||
return PTR_ERR(clk);
|
|
||||||
|
|
||||||
- reset = devm_reset_control_get_optional_exclusive(dev, NULL);
|
|
||||||
+ reset = devm_reset_control_get_optional_shared(dev, NULL);
|
|
||||||
if (IS_ERR(reset))
|
|
||||||
return PTR_ERR(reset);
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
|
|
||||||
--- a/drivers/net/dsa/b53/b53_common.c
|
--- a/drivers/net/dsa/b53/b53_common.c
|
||||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||||
@@ -2358,13 +2358,16 @@ int b53_eee_init(struct dsa_switch *ds,
|
@@ -2343,13 +2343,16 @@ int b53_eee_init(struct dsa_switch *ds,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(b53_eee_init);
|
EXPORT_SYMBOL(b53_eee_init);
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(b53_get_mac_eee);
|
EXPORT_SYMBOL(b53_get_mac_eee);
|
||||||
@@ -2374,9 +2377,6 @@ int b53_set_mac_eee(struct dsa_switch *d
|
@@ -2359,9 +2362,6 @@ int b53_set_mac_eee(struct dsa_switch *d
|
||||||
struct b53_device *dev = ds->priv;
|
struct b53_device *dev = ds->priv;
|
||||||
struct ethtool_keee *p = &dev->ports[port].eee;
|
struct ethtool_keee *p = &dev->ports[port].eee;
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
p->eee_enabled = e->eee_enabled;
|
p->eee_enabled = e->eee_enabled;
|
||||||
b53_eee_enable_set(ds, port, e->eee_enabled);
|
b53_eee_enable_set(ds, port, e->eee_enabled);
|
||||||
|
|
||||||
@@ -2433,6 +2433,7 @@ static const struct dsa_switch_ops b53_s
|
@@ -2418,6 +2418,7 @@ static const struct dsa_switch_ops b53_s
|
||||||
.port_setup = b53_setup_port,
|
.port_setup = b53_setup_port,
|
||||||
.port_enable = b53_enable_port,
|
.port_enable = b53_enable_port,
|
||||||
.port_disable = b53_disable_port,
|
.port_disable = b53_disable_port,
|
||||||
|
|
|
@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
|
|
||||||
--- a/drivers/net/dsa/b53/b53_common.c
|
--- a/drivers/net/dsa/b53/b53_common.c
|
||||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||||
@@ -2552,6 +2552,19 @@ static const struct b53_chip_data b53_sw
|
@@ -2537,6 +2537,19 @@ static const struct b53_chip_data b53_sw
|
||||||
.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
|
.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -38,7 +38,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
.chip_id = BCM53115_DEVICE_ID,
|
.chip_id = BCM53115_DEVICE_ID,
|
||||||
.dev_name = "BCM53115",
|
.dev_name = "BCM53115",
|
||||||
.vlans = 4096,
|
.vlans = 4096,
|
||||||
@@ -2932,6 +2945,7 @@ int b53_switch_detect(struct b53_device
|
@@ -2917,6 +2930,7 @@ int b53_switch_detect(struct b53_device
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
switch (id32) {
|
switch (id32) {
|
||||||
|
|
|
@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
ret = b53_reset_switch(dev);
|
ret = b53_reset_switch(dev);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(ds->dev, "failed to reset switch\n");
|
dev_err(ds->dev, "failed to reset switch\n");
|
||||||
@@ -2412,6 +2417,28 @@ static int b53_get_max_mtu(struct dsa_sw
|
@@ -2397,6 +2402,28 @@ static int b53_get_max_mtu(struct dsa_sw
|
||||||
return B53_MAX_MTU;
|
return B53_MAX_MTU;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
static const struct phylink_mac_ops b53_phylink_mac_ops = {
|
static const struct phylink_mac_ops b53_phylink_mac_ops = {
|
||||||
.mac_select_pcs = b53_phylink_mac_select_pcs,
|
.mac_select_pcs = b53_phylink_mac_select_pcs,
|
||||||
.mac_config = b53_phylink_mac_config,
|
.mac_config = b53_phylink_mac_config,
|
||||||
@@ -2436,6 +2463,7 @@ static const struct dsa_switch_ops b53_s
|
@@ -2421,6 +2448,7 @@ static const struct dsa_switch_ops b53_s
|
||||||
.support_eee = b53_support_eee,
|
.support_eee = b53_support_eee,
|
||||||
.get_mac_eee = b53_get_mac_eee,
|
.get_mac_eee = b53_get_mac_eee,
|
||||||
.set_mac_eee = b53_set_mac_eee,
|
.set_mac_eee = b53_set_mac_eee,
|
||||||
|
|
|
@ -26,7 +26,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||||
|
|
||||||
--- a/drivers/net/dsa/b53/b53_common.c
|
--- a/drivers/net/dsa/b53/b53_common.c
|
||||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||||
@@ -2353,6 +2353,9 @@ int b53_eee_init(struct dsa_switch *ds,
|
@@ -2338,6 +2338,9 @@ int b53_eee_init(struct dsa_switch *ds,
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||||
ret = phy_init_eee(phy, false);
|
ret = phy_init_eee(phy, false);
|
||||||
if (ret)
|
if (ret)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -2367,7 +2370,7 @@ bool b53_support_eee(struct dsa_switch *
|
@@ -2352,7 +2355,7 @@ bool b53_support_eee(struct dsa_switch *
|
||||||
{
|
{
|
||||||
struct b53_device *dev = ds->priv;
|
struct b53_device *dev = ds->priv;
|
||||||
|
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
From 4af523551d876ab8b8057d1e5303a860fd736fcb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jonas Gorski <jonas.gorski@gmail.com>
|
|
||||||
Date: Mon, 2 Jun 2025 21:39:50 +0200
|
|
||||||
Subject: [PATCH] net: dsa: b53: do not enable RGMII delay on bcm63xx
|
|
||||||
|
|
||||||
bcm63xx's RGMII ports are always in MAC mode, never in PHY mode, so we
|
|
||||||
shouldn't enable any delays and let the PHY handle any delays as
|
|
||||||
necessary.
|
|
||||||
|
|
||||||
This fixes using RGMII ports with normal PHYs like BCM54612E, which will
|
|
||||||
handle the delay in the PHY.
|
|
||||||
|
|
||||||
Fixes: ce3bf94871f7 ("net: dsa: b53: add support for BCM63xx RGMIIs")
|
|
||||||
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
|
|
||||||
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
|
||||||
Link: https://patch.msgid.link/20250602193953.1010487-3-jonas.gorski@gmail.com
|
|
||||||
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|
||||||
---
|
|
||||||
drivers/net/dsa/b53/b53_common.c | 19 +------------------
|
|
||||||
1 file changed, 1 insertion(+), 18 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/net/dsa/b53/b53_common.c
|
|
||||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
|
||||||
@@ -1330,24 +1330,7 @@ static void b53_adjust_63xx_rgmii(struct
|
|
||||||
off = B53_RGMII_CTRL_P(port);
|
|
||||||
|
|
||||||
b53_read8(dev, B53_CTRL_PAGE, off, &rgmii_ctrl);
|
|
||||||
-
|
|
||||||
- switch (interface) {
|
|
||||||
- case PHY_INTERFACE_MODE_RGMII_ID:
|
|
||||||
- rgmii_ctrl |= (RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
|
|
||||||
- break;
|
|
||||||
- case PHY_INTERFACE_MODE_RGMII_RXID:
|
|
||||||
- rgmii_ctrl &= ~(RGMII_CTRL_DLL_TXC);
|
|
||||||
- rgmii_ctrl |= RGMII_CTRL_DLL_RXC;
|
|
||||||
- break;
|
|
||||||
- case PHY_INTERFACE_MODE_RGMII_TXID:
|
|
||||||
- rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC);
|
|
||||||
- rgmii_ctrl |= RGMII_CTRL_DLL_TXC;
|
|
||||||
- break;
|
|
||||||
- case PHY_INTERFACE_MODE_RGMII:
|
|
||||||
- default:
|
|
||||||
- rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
|
|
||||||
- break;
|
|
||||||
- }
|
|
||||||
+ rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
|
|
||||||
|
|
||||||
if (port != dev->imp_port) {
|
|
||||||
if (is63268(dev))
|
|
|
@ -33,13 +33,13 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||||
{
|
{
|
||||||
struct b53_device *dev = ds->priv;
|
struct b53_device *dev = ds->priv;
|
||||||
- u8 rgmii_ctrl = 0, off;
|
- u8 rgmii_ctrl = 0, off;
|
||||||
+ u8 rgmii_ctrl = 0;
|
-
|
||||||
|
|
||||||
- if (port == dev->imp_port)
|
- if (port == dev->imp_port)
|
||||||
- off = B53_RGMII_CTRL_IMP;
|
- off = B53_RGMII_CTRL_IMP;
|
||||||
- else
|
- else
|
||||||
- off = B53_RGMII_CTRL_P(port);
|
- off = B53_RGMII_CTRL_P(port);
|
||||||
-
|
+ u8 rgmii_ctrl = 0;
|
||||||
|
|
||||||
- b53_read8(dev, B53_CTRL_PAGE, off, &rgmii_ctrl);
|
- b53_read8(dev, B53_CTRL_PAGE, off, &rgmii_ctrl);
|
||||||
+ b53_read8(dev, B53_CTRL_PAGE, B53_RGMII_CTRL_P(port), &rgmii_ctrl);
|
+ b53_read8(dev, B53_CTRL_PAGE, B53_RGMII_CTRL_P(port), &rgmii_ctrl);
|
||||||
rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
|
rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
|
||||||
|
@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||||
|
|
||||||
dev_dbg(ds->dev, "Configured port %d for %s\n", port,
|
dev_dbg(ds->dev, "Configured port %d for %s\n", port,
|
||||||
phy_modes(interface));
|
phy_modes(interface));
|
||||||
@@ -1484,7 +1478,7 @@ static void b53_phylink_mac_config(struc
|
@@ -1490,7 +1484,7 @@ static void b53_phylink_mac_config(struc
|
||||||
struct b53_device *dev = ds->priv;
|
struct b53_device *dev = ds->priv;
|
||||||
int port = dp->index;
|
int port = dp->index;
|
||||||
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
From 5ea0d42c1980e6d10e5cb56a78021db5bfcebaaf Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jonas Gorski <jonas.gorski@gmail.com>
|
|
||||||
Date: Mon, 2 Jun 2025 21:39:52 +0200
|
|
||||||
Subject: [PATCH] net: dsa: b53: allow RGMII for bcm63xx RGMII ports
|
|
||||||
|
|
||||||
Add RGMII to supported interfaces for BCM63xx RGMII ports so they can be
|
|
||||||
actually used in RGMII mode.
|
|
||||||
|
|
||||||
Without this, phylink will fail to configure them:
|
|
||||||
|
|
||||||
[ 3.580000] b53-switch 10700000.switch GbE3 (uninitialized): validation of rgmii with support 0000000,00000000,00000000,000062ff and advertisement 0000000,00000000,00000000,000062ff failed: -EINVAL
|
|
||||||
[ 3.600000] b53-switch 10700000.switch GbE3 (uninitialized): failed to connect to PHY: -EINVAL
|
|
||||||
[ 3.610000] b53-switch 10700000.switch GbE3 (uninitialized): error -22 setting up PHY for tree 0, switch 0, port 4
|
|
||||||
|
|
||||||
Fixes: ce3bf94871f7 ("net: dsa: b53: add support for BCM63xx RGMIIs")
|
|
||||||
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
|
||||||
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
|
|
||||||
Link: https://patch.msgid.link/20250602193953.1010487-5-jonas.gorski@gmail.com
|
|
||||||
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|
||||||
---
|
|
||||||
drivers/net/dsa/b53/b53_common.c | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
--- a/drivers/net/dsa/b53/b53_common.c
|
|
||||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
|
||||||
@@ -1439,6 +1439,10 @@ static void b53_phylink_get_caps(struct
|
|
||||||
__set_bit(PHY_INTERFACE_MODE_MII, config->supported_interfaces);
|
|
||||||
__set_bit(PHY_INTERFACE_MODE_REVMII, config->supported_interfaces);
|
|
||||||
|
|
||||||
+ /* BCM63xx RGMII ports support RGMII */
|
|
||||||
+ if (is63xx(dev) && in_range(port, B53_63XX_RGMII0, 4))
|
|
||||||
+ phy_interface_set_rgmii(config->supported_interfaces);
|
|
||||||
+
|
|
||||||
config->mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
|
|
||||||
MAC_10 | MAC_100;
|
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
From bc1a65eb81a21e2aa3c3dca058ee8adf687b6ef5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jonas Gorski <jonas.gorski@gmail.com>
|
|
||||||
Date: Mon, 2 Jun 2025 21:39:53 +0200
|
|
||||||
Subject: [PATCH] net: dsa: b53: do not touch DLL_IQQD on bcm53115
|
|
||||||
|
|
||||||
According to OpenMDK, bit 2 of the RGMII register has a different
|
|
||||||
meaning for BCM53115 [1]:
|
|
||||||
|
|
||||||
"DLL_IQQD 1: In the IDDQ mode, power is down0: Normal function
|
|
||||||
mode"
|
|
||||||
|
|
||||||
Configuring RGMII delay works without setting this bit, so let's keep it
|
|
||||||
at the default. For other chips, we always set it, so not clearing it
|
|
||||||
is not an issue.
|
|
||||||
|
|
||||||
One would assume BCM53118 works the same, but OpenMDK is not quite sure
|
|
||||||
what this bit actually means [2]:
|
|
||||||
|
|
||||||
"BYPASS_IMP_2NS_DEL #1: In the IDDQ mode, power is down#0: Normal
|
|
||||||
function mode1: Bypass dll65_2ns_del IP0: Use
|
|
||||||
dll65_2ns_del IP"
|
|
||||||
|
|
||||||
So lets keep setting it for now.
|
|
||||||
|
|
||||||
[1] https://github.com/Broadcom-Network-Switching-Software/OpenMDK/blob/master/cdk/PKG/chip/bcm53115/bcm53115_a0_defs.h#L19871
|
|
||||||
[2] https://github.com/Broadcom-Network-Switching-Software/OpenMDK/blob/master/cdk/PKG/chip/bcm53118/bcm53118_a0_defs.h#L14392
|
|
||||||
|
|
||||||
Fixes: 967dd82ffc52 ("net: dsa: b53: Add support for Broadcom RoboSwitch")
|
|
||||||
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
|
|
||||||
Link: https://patch.msgid.link/20250602193953.1010487-6-jonas.gorski@gmail.com
|
|
||||||
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|
||||||
---
|
|
||||||
drivers/net/dsa/b53/b53_common.c | 8 +++++---
|
|
||||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/net/dsa/b53/b53_common.c
|
|
||||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
|
||||||
@@ -1354,8 +1354,7 @@ static void b53_adjust_531x5_rgmii(struc
|
|
||||||
* tx_clk aligned timing (restoring to reset defaults)
|
|
||||||
*/
|
|
||||||
b53_read8(dev, B53_CTRL_PAGE, off, &rgmii_ctrl);
|
|
||||||
- rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC |
|
|
||||||
- RGMII_CTRL_TIMING_SEL);
|
|
||||||
+ rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
|
|
||||||
|
|
||||||
/* PHY_INTERFACE_MODE_RGMII_TXID means TX internal delay, make
|
|
||||||
* sure that we enable the port TX clock internal delay to
|
|
||||||
@@ -1375,7 +1374,10 @@ static void b53_adjust_531x5_rgmii(struc
|
|
||||||
rgmii_ctrl |= RGMII_CTRL_DLL_TXC;
|
|
||||||
if (interface == PHY_INTERFACE_MODE_RGMII)
|
|
||||||
rgmii_ctrl |= RGMII_CTRL_DLL_TXC | RGMII_CTRL_DLL_RXC;
|
|
||||||
- rgmii_ctrl |= RGMII_CTRL_TIMING_SEL;
|
|
||||||
+
|
|
||||||
+ if (dev->chip_id != BCM53115_DEVICE_ID)
|
|
||||||
+ rgmii_ctrl |= RGMII_CTRL_TIMING_SEL;
|
|
||||||
+
|
|
||||||
b53_write8(dev, B53_CTRL_PAGE, off, rgmii_ctrl);
|
|
||||||
|
|
||||||
dev_info(ds->dev, "Configured port %d for %s\n", port,
|
|
|
@ -1,31 +0,0 @@
|
||||||
From efdddc4484859082da6c7877ed144c8121c8ea55 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
|
||||||
Date: Thu, 29 May 2025 14:44:06 +0200
|
|
||||||
Subject: [PATCH] net: dsa: tag_brcm: legacy: fix pskb_may_pull length
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
BRCM_LEG_PORT_ID was incorrectly used for pskb_may_pull length.
|
|
||||||
The correct check is BRCM_LEG_TAG_LEN + VLAN_HLEN, or 10 bytes.
|
|
||||||
|
|
||||||
Fixes: 964dbf186eaa ("net: dsa: tag_brcm: add support for legacy tags")
|
|
||||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
|
||||||
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
|
||||||
Link: https://patch.msgid.link/20250529124406.2513779-1-noltari@gmail.com
|
|
||||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
||||||
---
|
|
||||||
net/dsa/tag_brcm.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/net/dsa/tag_brcm.c
|
|
||||||
+++ b/net/dsa/tag_brcm.c
|
|
||||||
@@ -257,7 +257,7 @@ static struct sk_buff *brcm_leg_tag_rcv(
|
|
||||||
int source_port;
|
|
||||||
u8 *brcm_tag;
|
|
||||||
|
|
||||||
- if (unlikely(!pskb_may_pull(skb, BRCM_LEG_PORT_ID)))
|
|
||||||
+ if (unlikely(!pskb_may_pull(skb, BRCM_LEG_TAG_LEN + VLAN_HLEN)))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
brcm_tag = dsa_etype_header_pos_rx(skb);
|
|
|
@ -32,7 +32,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
This driver adds support for Broadcom managed switch chips. It supports
|
This driver adds support for Broadcom managed switch chips. It supports
|
||||||
--- a/drivers/net/dsa/b53/b53_common.c
|
--- a/drivers/net/dsa/b53/b53_common.c
|
||||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||||
@@ -2245,8 +2245,11 @@ enum dsa_tag_protocol b53_get_tag_protoc
|
@@ -2241,8 +2241,11 @@ enum dsa_tag_protocol b53_get_tag_protoc
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
|
|
||||||
/* Issue a read operation for this MAC */
|
/* Issue a read operation for this MAC */
|
||||||
ret = b53_arl_rw_op(dev, 1);
|
ret = b53_arl_rw_op(dev, 1);
|
||||||
@@ -2844,6 +2845,9 @@ static int b53_switch_init(struct b53_de
|
@@ -2840,6 +2841,9 @@ static int b53_switch_init(struct b53_de
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
dev->num_ports = fls(dev->enabled_ports);
|
dev->num_ports = fls(dev->enabled_ports);
|
||||||
|
|
||||||
dev->ds->num_ports = min_t(unsigned int, dev->num_ports, DSA_MAX_PORTS);
|
dev->ds->num_ports = min_t(unsigned int, dev->num_ports, DSA_MAX_PORTS);
|
||||||
@@ -2945,10 +2949,24 @@ int b53_switch_detect(struct b53_device
|
@@ -2941,10 +2945,24 @@ int b53_switch_detect(struct b53_device
|
||||||
b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_25, 0xf);
|
b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_25, 0xf);
|
||||||
b53_read16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_25, &tmp);
|
b53_read16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_25, &tmp);
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
b53_read16(dev, B53_CTRL_PAGE, B53_DIS_LEARNING, ®);
|
b53_read16(dev, B53_CTRL_PAGE, B53_DIS_LEARNING, ®);
|
||||||
if (learning)
|
if (learning)
|
||||||
reg &= ~BIT(port);
|
reg &= ~BIT(port);
|
||||||
@@ -2247,7 +2250,13 @@ int b53_br_flags_pre(struct dsa_switch *
|
@@ -2243,7 +2246,13 @@ int b53_br_flags_pre(struct dsa_switch *
|
||||||
struct switchdev_brport_flags flags,
|
struct switchdev_brport_flags flags,
|
||||||
struct netlink_ext_ack *extack)
|
struct netlink_ext_ack *extack)
|
||||||
{
|
{
|
||||||
|
|
|
@ -19,7 +19,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||||
|
|
||||||
--- a/drivers/net/phy/phy_device.c
|
--- a/drivers/net/phy/phy_device.c
|
||||||
+++ b/drivers/net/phy/phy_device.c
|
+++ b/drivers/net/phy/phy_device.c
|
||||||
@@ -3385,11 +3385,17 @@ static int of_phy_led(struct phy_device
|
@@ -3387,11 +3387,17 @@ static int of_phy_led(struct phy_device
|
||||||
if (index > U8_MAX)
|
if (index > U8_MAX)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||||
if (!phydev->drv->led_polarity_set)
|
if (!phydev->drv->led_polarity_set)
|
||||||
--- a/include/linux/phy.h
|
--- a/include/linux/phy.h
|
||||||
+++ b/include/linux/phy.h
|
+++ b/include/linux/phy.h
|
||||||
@@ -877,8 +877,9 @@ struct phy_plca_status {
|
@@ -874,8 +874,9 @@ struct phy_plca_status {
|
||||||
|
|
||||||
/* Modes for PHY LED configuration */
|
/* Modes for PHY LED configuration */
|
||||||
enum phy_led_modes {
|
enum phy_led_modes {
|
||||||
|
|
|
@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
--- a/net/core/page_pool.c
|
--- a/net/core/page_pool.c
|
||||||
+++ b/net/core/page_pool.c
|
+++ b/net/core/page_pool.c
|
||||||
@@ -1064,7 +1064,7 @@ static void page_pool_release_retry(stru
|
@@ -1120,7 +1120,7 @@ static void page_pool_release_retry(stru
|
||||||
struct delayed_work *dwq = to_delayed_work(wq);
|
struct delayed_work *dwq = to_delayed_work(wq);
|
||||||
struct page_pool *pool = container_of(dwq, typeof(*pool), release_dw);
|
struct page_pool *pool = container_of(dwq, typeof(*pool), release_dw);
|
||||||
void *netdev;
|
void *netdev;
|
||||||
|
@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
inflight = page_pool_release(pool);
|
inflight = page_pool_release(pool);
|
||||||
/* In rare cases, a driver bug may cause inflight to go negative.
|
/* In rare cases, a driver bug may cause inflight to go negative.
|
||||||
@@ -1076,6 +1076,17 @@ static void page_pool_release_retry(stru
|
@@ -1132,6 +1132,17 @@ static void page_pool_release_retry(stru
|
||||||
if (inflight <= 0)
|
if (inflight <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--- a/kernel/sched/core.c
|
--- a/kernel/sched/core.c
|
||||||
+++ b/kernel/sched/core.c
|
+++ b/kernel/sched/core.c
|
||||||
@@ -4422,6 +4422,7 @@ int wake_up_state(struct task_struct *p,
|
@@ -4428,6 +4428,7 @@ int wake_up_state(struct task_struct *p,
|
||||||
{
|
{
|
||||||
return try_to_wake_up(p, state, 0);
|
return try_to_wake_up(p, state, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
LINUX_VERSION-6.12 = .33
|
LINUX_VERSION-6.12 = .34
|
||||||
LINUX_KERNEL_HASH-6.12.33 = c0a575630f2603a20bb0641f8df8f955e46c9d7ac1fae8b54b21316e6b52a254
|
LINUX_KERNEL_HASH-6.12.34 = a7f3fe381f67eca4172e9b63efb61a14bd7f9e1278e03603d0ff5a93f270c24d
|
||||||
|
|
|
@ -11,9 +11,9 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
|
|
||||||
--- a/drivers/net/phy/phy_device.c
|
--- a/drivers/net/phy/phy_device.c
|
||||||
+++ b/drivers/net/phy/phy_device.c
|
+++ b/drivers/net/phy/phy_device.c
|
||||||
@@ -2013,6 +2013,9 @@ void phy_detach(struct phy_device *phyde
|
@@ -2015,6 +2015,9 @@ void phy_detach(struct phy_device *phyde
|
||||||
if (phydev->devlink)
|
phydev->devlink = NULL;
|
||||||
device_link_del(phydev->devlink);
|
}
|
||||||
|
|
||||||
+ if (phydev->drv && phydev->drv->detach)
|
+ if (phydev->drv && phydev->drv->detach)
|
||||||
+ phydev->drv->detach(phydev);
|
+ phydev->drv->detach(phydev);
|
||||||
|
@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
sysfs_remove_link(&dev->dev.kobj, "phydev");
|
sysfs_remove_link(&dev->dev.kobj, "phydev");
|
||||||
--- a/include/linux/phy.h
|
--- a/include/linux/phy.h
|
||||||
+++ b/include/linux/phy.h
|
+++ b/include/linux/phy.h
|
||||||
@@ -999,6 +999,12 @@ struct phy_driver {
|
@@ -996,6 +996,12 @@ struct phy_driver {
|
||||||
/** @handle_interrupt: Override default interrupt handling */
|
/** @handle_interrupt: Override default interrupt handling */
|
||||||
irqreturn_t (*handle_interrupt)(struct phy_device *phydev);
|
irqreturn_t (*handle_interrupt)(struct phy_device *phydev);
|
||||||
|
|
||||||
|
|
|
@ -835,7 +835,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
|
||||||
*
|
*
|
||||||
--- a/include/linux/phy.h
|
--- a/include/linux/phy.h
|
||||||
+++ b/include/linux/phy.h
|
+++ b/include/linux/phy.h
|
||||||
@@ -819,6 +819,24 @@ struct phy_tdr_config {
|
@@ -816,6 +816,24 @@ struct phy_tdr_config {
|
||||||
#define PHY_PAIR_ALL -1
|
#define PHY_PAIR_ALL -1
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -860,7 +860,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
|
||||||
* struct phy_plca_cfg - Configuration of the PLCA (Physical Layer Collision
|
* struct phy_plca_cfg - Configuration of the PLCA (Physical Layer Collision
|
||||||
* Avoidance) Reconciliation Sublayer.
|
* Avoidance) Reconciliation Sublayer.
|
||||||
*
|
*
|
||||||
@@ -958,6 +976,19 @@ struct phy_driver {
|
@@ -955,6 +973,19 @@ struct phy_driver {
|
||||||
int (*get_features)(struct phy_device *phydev);
|
int (*get_features)(struct phy_device *phydev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -880,7 +880,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
|
||||||
* @get_rate_matching: Get the supported type of rate matching for a
|
* @get_rate_matching: Get the supported type of rate matching for a
|
||||||
* particular phy interface. This is used by phy consumers to determine
|
* particular phy interface. This is used by phy consumers to determine
|
||||||
* whether to advertise lower-speed modes for that interface. It is
|
* whether to advertise lower-speed modes for that interface. It is
|
||||||
@@ -1842,6 +1873,9 @@ int phy_config_aneg(struct phy_device *p
|
@@ -1839,6 +1870,9 @@ int phy_config_aneg(struct phy_device *p
|
||||||
int _phy_start_aneg(struct phy_device *phydev);
|
int _phy_start_aneg(struct phy_device *phydev);
|
||||||
int phy_start_aneg(struct phy_device *phydev);
|
int phy_start_aneg(struct phy_device *phydev);
|
||||||
int phy_aneg_done(struct phy_device *phydev);
|
int phy_aneg_done(struct phy_device *phydev);
|
||||||
|
|
|
@ -21,7 +21,7 @@ Submitted-by: John Crispin <john@phrozen.org>
|
||||||
|
|
||||||
--- a/include/linux/phy.h
|
--- a/include/linux/phy.h
|
||||||
+++ b/include/linux/phy.h
|
+++ b/include/linux/phy.h
|
||||||
@@ -1229,6 +1229,8 @@ struct phy_driver {
|
@@ -1226,6 +1226,8 @@ struct phy_driver {
|
||||||
*/
|
*/
|
||||||
int (*led_polarity_set)(struct phy_device *dev, int index,
|
int (*led_polarity_set)(struct phy_device *dev, int index,
|
||||||
unsigned long modes);
|
unsigned long modes);
|
||||||
|
|
|
@ -10,7 +10,7 @@ Signed-off-by: Matteo Croce <mcroce@microsoft.com>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||||
@@ -1454,7 +1454,7 @@ static int stmmac_init_rx_buffers(struct
|
@@ -1459,7 +1459,7 @@ static int stmmac_init_rx_buffers(struct
|
||||||
{
|
{
|
||||||
struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue];
|
struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue];
|
||||||
struct stmmac_rx_buffer *buf = &rx_q->buf_pool[i];
|
struct stmmac_rx_buffer *buf = &rx_q->buf_pool[i];
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: Matteo Croce <mcroce@microsoft.com>
|
||||||
|
|
||||||
if (priv->dma_cap.host_dma_width <= 32)
|
if (priv->dma_cap.host_dma_width <= 32)
|
||||||
gfp |= GFP_DMA32;
|
gfp |= GFP_DMA32;
|
||||||
@@ -4790,7 +4790,7 @@ static inline void stmmac_rx_refill(stru
|
@@ -4795,7 +4795,7 @@ static inline void stmmac_rx_refill(stru
|
||||||
struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue];
|
struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue];
|
||||||
int dirty = stmmac_rx_dirty(priv, queue);
|
int dirty = stmmac_rx_dirty(priv, queue);
|
||||||
unsigned int entry = rx_q->dirty_rx;
|
unsigned int entry = rx_q->dirty_rx;
|
||||||
|
|
Loading…
Reference in a new issue