From b35ad6243e3aca5ebcce8f74fbd092cb57c0c95a Mon Sep 17 00:00:00 2001 From: yafen Date: Wed, 17 Aug 2022 23:29:03 +0800 Subject: [PATCH] release 5.10.0-112.0.0 --- 0000-raspberrypi-kernel.patch | 114 ++++++++++++---------------------- raspberrypi-kernel.spec | 7 ++- 2 files changed, 44 insertions(+), 77 deletions(-) diff --git a/0000-raspberrypi-kernel.patch b/0000-raspberrypi-kernel.patch index 73dadd6..d2f8b8c 100644 --- a/0000-raspberrypi-kernel.patch +++ b/0000-raspberrypi-kernel.patch @@ -1,7 +1,7 @@ -From 340fc2609d9a9d4135fb092e2e4679a76d81e68b Mon Sep 17 00:00:00 2001 +From c1d6aa23673d4e317f836e581899a58d84c16ffb Mon Sep 17 00:00:00 2001 From: yafen -Date: Wed, 20 Jul 2022 19:42:35 +0800 -Subject: [PATCH] apply RPi patch of 5.10.95(openEuler 5.10.0-106.0.0) +Date: Wed, 10 Aug 2022 20:53:16 +0800 +Subject: [PATCH] apply RPi patch of 5.10.95(openEuler 5.10.0-109.0.0) --- .../admin-guide/media/bcm2835-isp.rst | 127 + @@ -491,7 +491,7 @@ Subject: [PATCH] apply RPi patch of 5.10.95(openEuler 5.10.0-106.0.0) drivers/gpu/drm/omapdrm/omap_crtc.c | 22 +- drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 253 +- .../gpu/drm/panel/panel-jdi-lt070me05000.c | 18 +- - .../drm/panel/panel-raspberrypi-touchscreen.c | 49 +- + .../drm/panel/panel-raspberrypi-touchscreen.c | 36 +- drivers/gpu/drm/panel/panel-simple.c | 106 +- drivers/gpu/drm/qxl/qxl_display.c | 6 +- drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 22 +- @@ -899,7 +899,7 @@ Subject: [PATCH] apply RPi patch of 5.10.95(openEuler 5.10.0-106.0.0) sound/soc/soc-core.c | 14 +- sound/usb/quirks-table.h | 9 + sound/usb/quirks.c | 6 + - 895 files changed, 175502 insertions(+), 4850 deletions(-) + 895 files changed, 175492 insertions(+), 4847 deletions(-) create mode 100644 Documentation/admin-guide/media/bcm2835-isp.rst create mode 100644 Documentation/devicetree/bindings/clock/raspberrypi,firmware-clocks.yaml create mode 100644 Documentation/devicetree/bindings/hwmon/rpi-poe-fan.txt @@ -4152,7 +4152,7 @@ index 4a05a105a9e6..ba3a5b599362 100644 pixfmt-nv16m pixfmt-nv24 diff --git a/MAINTAINERS b/MAINTAINERS -index 466b1c599848..1946b937e054 100644 +index 9908e5442110..df1f27dcaf3d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3417,6 +3417,29 @@ N: bcm113* @@ -4200,7 +4200,7 @@ index 466b1c599848..1946b937e054 100644 DRM DRIVER FOR GRAIN MEDIA GM12U320 PROJECTORS M: Hans de Goede S: Maintained -@@ -16408,6 +16439,23 @@ S: Maintained +@@ -16410,6 +16441,23 @@ S: Maintained T: git git://linuxtv.org/media_tree.git F: drivers/media/i2c/imx355.c @@ -42414,7 +42414,7 @@ index 106f83a5ea6d..b483e5713039 100644 static unsigned long noinline __clear_user_memset(void __user *addr, unsigned long n) diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig -index ae790908fc74..822125c5707a 100644 +index 9b594ae98153..a77c495f8378 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig @@ -161,9 +161,12 @@ config ARCH_BCM2835 @@ -52287,7 +52287,7 @@ index 000000000000..89f5d6b353ab +MODULE_AUTHOR("Dave Stevenson "); +MODULE_DESCRIPTION("PWM GPIO driver"); diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c -index d18078748200..3cd19e0cc0f5 100644 +index 59d8affad343..2ab00355b37b 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -51,6 +51,8 @@ @@ -57369,7 +57369,7 @@ index 733010b5e4f5..7fb4d98e166d 100644 return ret; } diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c -index bbdd086be7f5..3f0c11fa60a5 100644 +index 4b92c6341490..3f0c11fa60a5 100644 --- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c +++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c @@ -219,7 +219,35 @@ static struct rpi_touchscreen *panel_to_ts(struct drm_panel *panel) @@ -57409,21 +57409,8 @@ index bbdd086be7f5..3f0c11fa60a5 100644 } static void rpi_touchscreen_i2c_write(struct rpi_touchscreen *ts, -@@ -229,7 +257,7 @@ static void rpi_touchscreen_i2c_write(struct rpi_touchscreen *ts, - - ret = i2c_smbus_write_byte_data(ts->i2c, reg, val); - if (ret) -- dev_err(&ts->dsi->dev, "I2C write failed: %d\n", ret); -+ dev_err(&ts->i2c->dev, "I2C write failed: %d\n", ret); - } - - static int rpi_touchscreen_write(struct rpi_touchscreen *ts, u16 reg, u32 val) -@@ -265,15 +293,17 @@ static int rpi_touchscreen_noop(struct drm_panel *panel) - return 0; - } - --static int rpi_touchscreen_enable(struct drm_panel *panel) -+static int rpi_touchscreen_prepare(struct drm_panel *panel) +@@ -268,12 +296,14 @@ static int rpi_touchscreen_noop(struct drm_panel *panel) + static int rpi_touchscreen_prepare(struct drm_panel *panel) { struct rpi_touchscreen *ts = panel_to_ts(panel); - int i; @@ -57439,29 +57426,6 @@ index bbdd086be7f5..3f0c11fa60a5 100644 break; } -@@ -295,6 +325,13 @@ static int rpi_touchscreen_enable(struct drm_panel *panel) - rpi_touchscreen_write(ts, DSI_STARTDSI, 0x01); - msleep(100); - -+ return 0; -+} -+ -+static int rpi_touchscreen_enable(struct drm_panel *panel) -+{ -+ struct rpi_touchscreen *ts = panel_to_ts(panel); -+ - /* Turn on the backlight. */ - rpi_touchscreen_i2c_write(ts, REG_PWM, 255); - -@@ -349,7 +386,7 @@ static int rpi_touchscreen_get_modes(struct drm_panel *panel, - static const struct drm_panel_funcs rpi_touchscreen_funcs = { - .disable = rpi_touchscreen_disable, - .unprepare = rpi_touchscreen_noop, -- .prepare = rpi_touchscreen_noop, -+ .prepare = rpi_touchscreen_prepare, - .enable = rpi_touchscreen_enable, - .get_modes = rpi_touchscreen_get_modes, - }; diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 959dcbd8a29c..ec34380ebc5a 100644 --- a/drivers/gpu/drm/panel/panel-simple.c @@ -59579,7 +59543,7 @@ index 9809c3a856c6..dd34de6e677b 100644 void vc4_hvs_unmask_underrun(struct drm_device *dev, int channel); void vc4_hvs_mask_underrun(struct drm_device *dev, int channel); diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c -index eaf276978ee7..1c6939c9c232 100644 +index ad84b56f4091..6e50e1d2eac8 100644 --- a/drivers/gpu/drm/vc4/vc4_dsi.c +++ b/drivers/gpu/drm/vc4/vc4_dsi.c @@ -181,8 +181,50 @@ @@ -59718,7 +59682,7 @@ index eaf276978ee7..1c6939c9c232 100644 /* Now that we've picked a PLL divider, calculate back to its @@ -837,7 +891,7 @@ static void vc4_dsi_encoder_enable(struct drm_encoder *encoder) - ret = pm_runtime_get_sync(dev); + ret = pm_runtime_resume_and_get(dev); if (ret) { - DRM_ERROR("Failed to runtime PM enable on DSI%d\n", dsi->port); + DRM_ERROR("Failed to runtime PM enable on DSI%d\n", dsi->variant->port); @@ -90558,7 +90522,7 @@ index d42e86cdff12..0533339d7979 100644 sdhci_dumpregs(host); diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index 5de37c33a737..0420b61443d3 100644 +index b341b823fdbf..594ff3862569 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -67,6 +67,9 @@ @@ -90571,7 +90535,7 @@ index 5de37c33a737..0420b61443d3 100644 static inline void bcmgenet_writel(u32 value, void __iomem *offset) { -@@ -2432,6 +2435,11 @@ static void reset_umac(struct bcmgenet_priv *priv) +@@ -2439,6 +2442,11 @@ static void reset_umac(struct bcmgenet_priv *priv) bcmgenet_rbuf_ctrl_set(priv, 0); udelay(10); @@ -90583,7 +90547,7 @@ index 5de37c33a737..0420b61443d3 100644 /* issue soft reset and disable MAC while updating its registers */ bcmgenet_umac_writel(priv, CMD_SW_RESET, UMAC_CMD); udelay(2); -@@ -2601,7 +2609,7 @@ static void bcmgenet_init_tx_ring(struct bcmgenet_priv *priv, +@@ -2608,7 +2616,7 @@ static void bcmgenet_init_tx_ring(struct bcmgenet_priv *priv, bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX); bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX); @@ -90592,7 +90556,7 @@ index 5de37c33a737..0420b61443d3 100644 /* Disable rate control for now */ bcmgenet_tdma_ring_writel(priv, index, flow_period_val, TDMA_FLOW_PERIOD); -@@ -3242,7 +3250,7 @@ static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv, +@@ -3249,7 +3257,7 @@ static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv, } /* Returns a reusable dma control register value */ @@ -90601,7 +90565,7 @@ index 5de37c33a737..0420b61443d3 100644 { unsigned int i; u32 reg; -@@ -3267,6 +3275,14 @@ static u32 bcmgenet_dma_disable(struct bcmgenet_priv *priv) +@@ -3274,6 +3282,14 @@ static u32 bcmgenet_dma_disable(struct bcmgenet_priv *priv) udelay(10); bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH); @@ -90616,7 +90580,7 @@ index 5de37c33a737..0420b61443d3 100644 return dma_ctrl; } -@@ -3330,8 +3346,8 @@ static int bcmgenet_open(struct net_device *dev) +@@ -3337,8 +3353,8 @@ static int bcmgenet_open(struct net_device *dev) bcmgenet_set_hw_addr(priv, dev->dev_addr); @@ -90627,7 +90591,7 @@ index 5de37c33a737..0420b61443d3 100644 /* Reinitialize TDMA and RDMA and SW housekeeping */ ret = bcmgenet_init_dma(priv); -@@ -4066,9 +4082,12 @@ static int bcmgenet_probe(struct platform_device *pdev) +@@ -4073,9 +4089,12 @@ static int bcmgenet_probe(struct platform_device *pdev) netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1); /* Set default coalescing parameters */ @@ -90641,7 +90605,7 @@ index 5de37c33a737..0420b61443d3 100644 /* libphy will determine the link state */ netif_carrier_off(dev); -@@ -4184,7 +4203,7 @@ static int bcmgenet_resume(struct device *d) +@@ -4191,7 +4210,7 @@ static int bcmgenet_resume(struct device *d) bcmgenet_hfb_create_rxnfc_filter(priv, rule); /* Disable RX/TX DMA and flush TX queues */ @@ -96853,7 +96817,7 @@ index 61febc9bfa14..7491710bdec0 100644 brcmf_pcie_fwnames, ARRAY_SIZE(brcmf_pcie_fwnames), diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -index 6d5d5c39c635..c8609fed3c32 100644 +index 9929e90866f0..5de2f21a3cfe 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -35,6 +35,7 @@ @@ -176353,10 +176317,10 @@ index 4aab93d5b651..f482c43bc64e 100644 "// Write ERST size = %i to ir_set 0 (some bits preserved)", val); diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 490ce38ae93d..97260e089e0c 100644 +index 405c2fe8b104..fa9453d5029e 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -297,6 +297,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -299,6 +299,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; @@ -176366,7 +176330,7 @@ index 490ce38ae93d..97260e089e0c 100644 if (pdev->vendor == PCI_VENDOR_ID_ZHAOXIN && diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index 76389c0dda8b..545387a0679a 100644 +index fa3a7ac15f82..b01cc54aeef6 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -87,15 +87,16 @@ static bool trb_is_link(union xhci_trb *trb) @@ -176437,8 +176401,8 @@ index 76389c0dda8b..545387a0679a 100644 + if (event_loop++ < xhci->event_ring->trbs_per_seg / 2) continue; xhci_update_erst_dequeue(xhci, event_ring_deq); - event_loop = 0; -@@ -4258,9 +4276,9 @@ void xhci_queue_new_dequeue_state(struct xhci_hcd *xhci, + event_ring_deq = xhci->event_ring->dequeue; +@@ -4260,9 +4278,9 @@ void xhci_queue_new_dequeue_state(struct xhci_hcd *xhci, } ep = &xhci->devs[slot_id]->eps[ep_index]; if ((ep->ep_state & SET_DEQ_PENDING)) { @@ -176452,10 +176416,10 @@ index 76389c0dda8b..545387a0679a 100644 /* This function gets called from contexts where it cannot sleep */ diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index cc21f5f9d0ad..407527cac378 100644 +index 8beb17c67d73..7fc2b3688998 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -856,8 +856,8 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) +@@ -867,8 +867,8 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) seg = ring->deq_seg; do { memset(seg->trbs, 0, @@ -176466,7 +176430,7 @@ index cc21f5f9d0ad..407527cac378 100644 cpu_to_le32(~TRB_CYCLE); seg = seg->next; } while (seg != ring->deq_seg); -@@ -868,7 +868,7 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) +@@ -879,7 +879,7 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) ring->enq_seg = ring->deq_seg; ring->enqueue = ring->dequeue; @@ -176475,7 +176439,7 @@ index cc21f5f9d0ad..407527cac378 100644 /* * Ring is now zeroed, so the HW should look for change of ownership * when the cycle bit is set to 1. -@@ -1471,6 +1471,103 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, +@@ -1482,6 +1482,103 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, return ret; } @@ -176579,7 +176543,7 @@ index cc21f5f9d0ad..407527cac378 100644 /* * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it -@@ -5427,6 +5524,7 @@ static const struct hc_driver xhci_hc_driver = { +@@ -5438,6 +5535,7 @@ static const struct hc_driver xhci_hc_driver = { .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, @@ -178297,10 +178261,10 @@ index a2bb276a8b24..436494fba15a 100644 start_index, pitch_index); } else diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c -index 00939ca2065a..098cd5dfc06f 100644 +index 3b3ccb235522..2272606cf003 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c -@@ -1085,6 +1085,30 @@ fb_blank(struct fb_info *info, int blank) +@@ -1095,6 +1095,30 @@ fb_blank(struct fb_info *info, int blank) } EXPORT_SYMBOL(fb_blank); @@ -178331,7 +178295,7 @@ index 00939ca2065a..098cd5dfc06f 100644 static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg) { -@@ -1093,6 +1117,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, +@@ -1103,6 +1127,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, struct fb_fix_screeninfo fix; struct fb_cmap cmap_from; struct fb_cmap_user cmap; @@ -178339,7 +178303,7 @@ index 00939ca2065a..098cd5dfc06f 100644 void __user *argp = (void __user *)arg; long ret = 0; -@@ -1168,6 +1193,15 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, +@@ -1180,6 +1205,15 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, unlock_fb_info(info); console_unlock(); break; @@ -178355,7 +178319,7 @@ index 00939ca2065a..098cd5dfc06f 100644 default: lock_fb_info(info); fb = info->fbops; -@@ -1313,6 +1347,7 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, +@@ -1325,6 +1359,7 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, case FBIOPAN_DISPLAY: case FBIOGET_CON2FBMAP: case FBIOPUT_CON2FBMAP: @@ -183681,7 +183645,7 @@ index 817545ff80b9..375a43d99b28 100644 for (;;) { tmp = *p; diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index ec73cca1726c..60b829755c0b 100644 +index cf9c69d631f3..d920ef24438c 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -8894,8 +8894,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, diff --git a/raspberrypi-kernel.spec b/raspberrypi-kernel.spec index 499331b..518af9d 100644 --- a/raspberrypi-kernel.spec +++ b/raspberrypi-kernel.spec @@ -2,13 +2,13 @@ %global KernelVer %{version}-%{release}.raspi.%{_target_cpu} -%global hulkrelease 105.0.0 +%global hulkrelease 112.0.0 %global debug_package %{nil} Name: raspberrypi-kernel Version: 5.10.0 -Release: %{hulkrelease}.11 +Release: %{hulkrelease}.12 Summary: Linux Kernel License: GPLv2 URL: http://www.kernel.org/ @@ -166,6 +166,9 @@ install -m 644 /boot/dtb-%{KernelVer}/overlays/README /boot/overlays/ /lib/modules/%{KernelVer} %changelog +* Thu Aug 18 2022 Yafen Fang - 5.10.0-112.0.0.12 +- update kernel version to openEuler 5.10.0-112.0.0 + * Fri Jul 22 2022 Yafen Fang - 5.10.0-105.0.0.11 - update kernel version to openEuler 5.10.0-105.0.0