-LINUX_VERSION-6.1 = .83
-LINUX_KERNEL_HASH-6.1.83 = 88b69611093613ce4494527685f833af0c31b986dcbeda7086f69f18f9e0b190
+LINUX_VERSION-6.1 = .84
+LINUX_KERNEL_HASH-6.1.84 = af97d2ebe14765d0db3af6560309daf08535da25bfad36e5fb3e436f22a1707a
}
EXPORT_SYMBOL(drm_panel_init);
-@@ -289,16 +292,18 @@ int of_drm_get_panel_orientation(const s
+@@ -294,16 +297,18 @@ int of_drm_get_panel_orientation(const s
if (ret < 0)
return ret;
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -5677,7 +5677,7 @@ static void port_event(struct usb_hub *h
+@@ -5686,7 +5686,7 @@ static void port_event(struct usb_hub *h
port_dev->over_current_count++;
port_over_current_notify(port_dev);
static inline int mmc_blk_part_switch(struct mmc_card *card,
unsigned int part_type);
static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
-@@ -3050,6 +3057,8 @@ static int mmc_blk_probe(struct mmc_card
+@@ -3052,6 +3059,8 @@ static int mmc_blk_probe(struct mmc_card
{
struct mmc_blk_data *md;
int ret = 0;
/*
* Check that the card supports the command class(es) we need.
-@@ -3057,7 +3066,16 @@ static int mmc_blk_probe(struct mmc_card
+@@ -3059,7 +3068,16 @@ static int mmc_blk_probe(struct mmc_card
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
return -ENODEV;
card->complete_wq = alloc_workqueue("mmc_complete",
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
-@@ -3072,6 +3090,17 @@ static int mmc_blk_probe(struct mmc_card
+@@ -3074,6 +3092,17 @@ static int mmc_blk_probe(struct mmc_card
goto out_free;
}
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
-@@ -1773,7 +1773,7 @@ int vchiq_mmal_component_enable(struct v
+@@ -1774,7 +1774,7 @@ int vchiq_mmal_component_enable(struct v
ret = enable_component(instance, component);
if (ret == 0)
/* deals with receipt of buffer to host message */
static void buffer_to_host_cb(struct vchiq_mmal_instance *instance,
struct mmal_msg *msg, u32 msg_len)
-@@ -1330,6 +1423,7 @@ static int port_disable(struct vchiq_mma
+@@ -1331,6 +1424,7 @@ static int port_disable(struct vchiq_mma
mmalbuf->mmal_flags = 0;
mmalbuf->dts = MMAL_TIME_UNKNOWN;
mmalbuf->pts = MMAL_TIME_UNKNOWN;
port->buffer_cb(instance,
port, 0, mmalbuf);
}
-@@ -1631,6 +1725,43 @@ int mmal_vchi_buffer_cleanup(struct mmal
+@@ -1632,6 +1726,43 @@ int mmal_vchi_buffer_cleanup(struct mmal
}
EXPORT_SYMBOL_GPL(mmal_vchi_buffer_cleanup);
/* Initialise a mmal component and its ports
*
*/
-@@ -1680,6 +1811,7 @@ int vchiq_mmal_component_init(struct vch
+@@ -1681,6 +1812,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->control);
if (ret < 0)
goto release_component;
for (idx = 0; idx < component->inputs; idx++) {
component->input[idx].type = MMAL_PORT_TYPE_INPUT;
-@@ -1690,6 +1822,7 @@ int vchiq_mmal_component_init(struct vch
+@@ -1691,6 +1823,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->input[idx]);
if (ret < 0)
goto release_component;
}
for (idx = 0; idx < component->outputs; idx++) {
-@@ -1701,6 +1834,7 @@ int vchiq_mmal_component_init(struct vch
+@@ -1702,6 +1835,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->output[idx]);
if (ret < 0)
goto release_component;
}
for (idx = 0; idx < component->clocks; idx++) {
-@@ -1712,6 +1846,7 @@ int vchiq_mmal_component_init(struct vch
+@@ -1713,6 +1847,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->clock[idx]);
if (ret < 0)
goto release_component;
}
*component_out = component;
-@@ -1737,7 +1872,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_i
+@@ -1738,7 +1873,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_i
int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,
struct vchiq_mmal_component *component)
{
if (mutex_lock_interruptible(&instance->vchiq_mutex))
return -EINTR;
-@@ -1749,6 +1884,13 @@ int vchiq_mmal_component_finalise(struct
+@@ -1750,6 +1885,13 @@ int vchiq_mmal_component_finalise(struct
component->in_use = 0;
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
-@@ -1899,6 +1899,8 @@ int vchiq_mmal_component_finalise(struct
+@@ -1900,6 +1900,8 @@ int vchiq_mmal_component_finalise(struct
for (idx = 0; idx < component->clocks; idx++)
free_event_context(&component->clock[idx]);
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
-@@ -1765,9 +1765,26 @@ static void free_event_context(struct vc
+@@ -1766,9 +1766,26 @@ static void free_event_context(struct vc
{
struct mmal_msg_context *ctx = port->event_context;
}
/* Initialise a mmal component and its ports
-@@ -1865,6 +1882,7 @@ int vchiq_mmal_component_init(struct vch
+@@ -1866,6 +1883,7 @@ int vchiq_mmal_component_init(struct vch
release_component:
destroy_component(instance, component);
unlock:
if (component)
component->in_use = 0;
-@@ -1880,7 +1898,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_i
+@@ -1881,7 +1899,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_i
int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,
struct vchiq_mmal_component *component)
{
if (mutex_lock_interruptible(&instance->vchiq_mutex))
return -EINTR;
-@@ -1892,14 +1910,7 @@ int vchiq_mmal_component_finalise(struct
+@@ -1893,14 +1911,7 @@ int vchiq_mmal_component_finalise(struct
component->in_use = 0;
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -1641,6 +1641,109 @@ command_cleanup:
+@@ -1643,6 +1643,109 @@ command_cleanup:
}
/*
* non-error returns are a promise to giveback() the urb later
* we drop ownership so next owner (or urb unlink) can get it
*/
-@@ -5469,6 +5572,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5471,6 +5574,7 @@ static const struct hc_driver xhci_hc_dr
.endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth,
} else if (msg->u.buffer_from_host.buffer_header.length == 0) {
/* empty buffer */
if (msg->u.buffer_from_host.buffer_header.flags &
-@@ -1528,6 +1551,9 @@ int vchiq_mmal_port_parameter_set(struct
+@@ -1529,6 +1552,9 @@ int vchiq_mmal_port_parameter_set(struct
mutex_unlock(&instance->vchiq_mutex);
return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_port_parameter_set);
-@@ -1696,6 +1722,31 @@ int vchiq_mmal_submit_buffer(struct vchi
+@@ -1697,6 +1723,31 @@ int vchiq_mmal_submit_buffer(struct vchi
unsigned long flags = 0;
int ret;
ret = buffer_from_host(instance, port, buffer);
if (ret == -EINVAL) {
/* Port is disabled. Queue for when it is enabled. */
-@@ -1729,6 +1780,16 @@ int mmal_vchi_buffer_cleanup(struct mmal
+@@ -1730,6 +1781,16 @@ int mmal_vchi_buffer_cleanup(struct mmal
release_msg_context(msg_context);
buf->msg_context = NULL;
vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle);
-@@ -1086,9 +1101,9 @@ static int create_component(struct vchiq
+@@ -1087,9 +1102,9 @@ static int create_component(struct vchiq
component->outputs = rmsg->u.component_create_reply.output_num;
component->clocks = rmsg->u.component_create_reply.clock_num;
release_msg:
vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle);
-@@ -1257,10 +1272,9 @@ static int port_action_port(struct vchiq
+@@ -1258,10 +1273,9 @@ static int port_action_port(struct vchiq
ret = -rmsg->u.port_action_reply.status;
release_msg:
vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle);
-@@ -1304,11 +1318,11 @@ static int port_action_handle(struct vch
+@@ -1305,11 +1319,11 @@ static int port_action_handle(struct vch
ret = -rmsg->u.port_action_reply.status;
release_msg:
vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle);
-@@ -1347,9 +1361,9 @@ static int port_parameter_set(struct vch
+@@ -1348,9 +1362,9 @@ static int port_parameter_set(struct vch
ret = -rmsg->u.port_parameter_set_reply.status;
release_msg:
vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle);
-@@ -1407,8 +1421,9 @@ static int port_parameter_get(struct vch
+@@ -1408,8 +1422,9 @@ static int port_parameter_get(struct vch
/* Always report the size of the returned parameter to the caller */
*value_size = rmsg->u.port_parameter_get_reply.size;
release_msg:
vchiq_release_message(instance->vchiq_instance, instance->service_handle, rmsg_handle);
-@@ -1665,7 +1680,7 @@ int vchiq_mmal_port_connect_tunnel(struc
+@@ -1666,7 +1681,7 @@ int vchiq_mmal_port_connect_tunnel(struc
if (!dst) {
/* do not make new connection */
ret = 0;
goto release_unlock;
}
-@@ -1683,14 +1698,14 @@ int vchiq_mmal_port_connect_tunnel(struc
+@@ -1684,14 +1699,14 @@ int vchiq_mmal_port_connect_tunnel(struc
/* set new format */
ret = port_info_set(instance, dst);
if (ret) {
goto release_unlock;
}
-@@ -1699,9 +1714,9 @@ int vchiq_mmal_port_connect_tunnel(struc
+@@ -1700,9 +1715,9 @@ int vchiq_mmal_port_connect_tunnel(struc
MMAL_MSG_PORT_ACTION_TYPE_CONNECT,
dst->component->handle, dst->handle);
if (ret < 0) {
goto release_unlock;
}
src->connected = dst;
-@@ -1726,7 +1741,8 @@ int vchiq_mmal_submit_buffer(struct vchi
+@@ -1727,7 +1742,8 @@ int vchiq_mmal_submit_buffer(struct vchi
* videobuf2 won't let us have the dmabuf there.
*/
if (port->zero_copy && buffer->dma_buf && !buffer->vcsm_handle) {
ret = vc_sm_cma_import_dmabuf(buffer->dma_buf,
&buffer->vcsm_handle);
if (ret) {
-@@ -1742,8 +1758,8 @@ int vchiq_mmal_submit_buffer(struct vchi
+@@ -1743,8 +1759,8 @@ int vchiq_mmal_submit_buffer(struct vchi
vc_sm_cma_free(buffer->vcsm_handle);
return ret;
}
}
ret = buffer_from_host(instance, port, buffer);
-@@ -1782,8 +1798,8 @@ int mmal_vchi_buffer_cleanup(struct mmal
+@@ -1783,8 +1799,8 @@ int mmal_vchi_buffer_cleanup(struct mmal
if (buf->vcsm_handle) {
int ret;
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
-@@ -1500,6 +1500,8 @@ static int port_enable(struct vchiq_mmal
+@@ -1501,6 +1501,8 @@ static int port_enable(struct vchiq_mmal
port->enabled = 1;
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
-@@ -1970,7 +1970,7 @@ static void mmc_blk_mq_rw_recovery(struc
+@@ -1972,7 +1972,7 @@ static void mmc_blk_mq_rw_recovery(struc
return;
}
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -1730,7 +1730,7 @@ static void xhci_fixup_endpoint(struct u
+@@ -1732,7 +1732,7 @@ static void xhci_fixup_endpoint(struct u
return;
}
ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index);
* hardware interrupt, we use a timer-based system. The original
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
-@@ -1559,6 +1559,9 @@ static void serial8250_stop_tx(struct ua
+@@ -1553,6 +1553,9 @@ static void serial8250_stop_tx(struct ua
serial_icr_write(up, UART_ACR, up->acr);
}
serial8250_rpm_put(up);
}
static inline void __start_tx(struct uart_port *port)
-@@ -1669,6 +1672,9 @@ static void serial8250_start_tx(struct u
+@@ -1663,6 +1666,9 @@ static void serial8250_start_tx(struct u
struct uart_8250_port *up = up_to_u8250p(port);
struct uart_8250_em485 *em485 = up->em485;
if (!port->x_char && uart_circ_empty(&port->state->xmit))
return;
-@@ -1889,6 +1895,9 @@ unsigned int serial8250_modem_status(str
+@@ -1883,6 +1889,9 @@ unsigned int serial8250_modem_status(str
uart_handle_cts_change(port, status & UART_MSR_CTS);
wake_up_interruptible(&port->state->port.delta_msr_wait);
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
-@@ -663,9 +663,7 @@ init_thread:
+@@ -665,9 +665,7 @@ init_thread:
"f2fs_flush-%u:%u", MAJOR(dev), MINOR(dev));
if (IS_ERR(fcc->f2fs_issue_flush)) {
err = PTR_ERR(fcc->f2fs_issue_flush);
}
return err;
-@@ -5062,11 +5060,9 @@ int f2fs_build_segment_manager(struct f2
+@@ -5064,11 +5062,9 @@ int f2fs_build_segment_manager(struct f2
init_f2fs_rwsem(&sm_info->curseg_lock);
--- a/drivers/usb/phy/phy-generic.c
+++ b/drivers/usb/phy/phy-generic.c
-@@ -272,13 +272,6 @@ int usb_phy_gen_create_phy(struct device
- return dev_err_probe(dev, PTR_ERR(nop->vbus_draw),
- "could not get vbus regulator\n");
+@@ -265,13 +265,6 @@ int usb_phy_gen_create_phy(struct device
+ return -EPROBE_DEFER;
+ }
- nop->vbus_draw = devm_regulator_get_exclusive(dev, "vbus");
- if (PTR_ERR(nop->vbus_draw) == -ENODEV)
static void mem_cgroup_css_free(struct cgroup_subsys_state *css)
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -7943,6 +7943,7 @@ static void __init free_area_init_node(i
+@@ -7945,6 +7945,7 @@ static void __init free_area_init_node(i
pgdat_set_deferred_range(pgdat);
free_area_init_core(pgdat);
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
-@@ -4154,17 +4154,6 @@ void intel_execlists_show_requests(struc
+@@ -4157,17 +4157,6 @@ void intel_execlists_show_requests(struc
spin_unlock_irqrestore(&sched_engine->lock, flags);
}
void intel_execlists_dump_active_requests(struct intel_engine_cs *engine,
struct i915_request *hung_rq,
struct drm_printer *m)
-@@ -4175,8 +4164,8 @@ void intel_execlists_dump_active_request
+@@ -4178,8 +4167,8 @@ void intel_execlists_dump_active_request
intel_engine_dump_active_requests(&engine->sched_engine->requests, hung_rq, m);
imx_ocotp_nvmem_config.priv = priv;
--- a/drivers/nvmem/meson-efuse.c
+++ b/drivers/nvmem/meson-efuse.c
-@@ -93,6 +93,7 @@ static int meson_efuse_probe(struct plat
+@@ -74,6 +74,7 @@ static int meson_efuse_probe(struct plat
econfig->dev = dev;
econfig->name = dev_name(dev);
#define QUECTEL_VENDOR_ID 0x2c7c
/* These Quectel products use Quectel's vendor ID */
-@@ -1147,6 +1152,11 @@ static const struct usb_device_id option
+@@ -1152,6 +1157,11 @@ static const struct usb_device_id option
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
.driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
/* Quectel products using Qualcomm vendor ID */
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
-@@ -1188,6 +1198,11 @@ static const struct usb_device_id option
+@@ -1193,6 +1203,11 @@ static const struct usb_device_id option
.driver_info = ZLP },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
.driver_info = RSVD(4) },
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -7897,7 +7897,7 @@ static void __init alloc_node_mem_map(st
+@@ -7899,7 +7899,7 @@ static void __init alloc_node_mem_map(st
if (pgdat == NODE_DATA(0)) {
mem_map = NODE_DATA(0)->node_mem_map;
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
-@@ -2484,6 +2484,8 @@ static struct mmc_blk_data *mmc_blk_allo
+@@ -2486,6 +2486,8 @@ static struct mmc_blk_data *mmc_blk_allo
int area_type,
unsigned int part_type)
{
struct mmc_blk_data *md;
int devidx, ret;
char cap_str[10];
-@@ -2580,6 +2582,13 @@ static struct mmc_blk_data *mmc_blk_allo
+@@ -2582,6 +2584,13 @@ static struct mmc_blk_data *mmc_blk_allo
blk_queue_write_cache(md->queue.queue, cache_enabled, fua_enabled);
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
-@@ -2538,6 +2538,7 @@ static struct mmc_blk_data *mmc_blk_allo
+@@ -2540,6 +2540,7 @@ static struct mmc_blk_data *mmc_blk_allo
md->disk->major = MMC_BLOCK_MAJOR;
md->disk->minors = perdev_minors;
md->disk->first_minor = devidx * perdev_minors;
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
-@@ -7918,7 +7918,7 @@ static int nft_register_flowtable_net_ho
+@@ -7925,7 +7925,7 @@ static int nft_register_flowtable_net_ho
err = flowtable->data.type->setup(&flowtable->data,
hook->ops.dev,
FLOW_BLOCK_BIND);
/*
* Define if arch has non-standard setup. This is a _PCI_ standard
-@@ -864,6 +867,12 @@ struct ata_port {
+@@ -865,6 +868,12 @@ struct ata_port {
#ifdef CONFIG_ATA_ACPI
struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
#endif
},
[PORT_NPCM] = {
.name = "Nuvoton 16550",
-@@ -2773,6 +2773,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2767,6 +2767,11 @@ serial8250_do_set_termios(struct uart_po
unsigned long flags;
unsigned int baud, quot, frac = 0;
+++ /dev/null
-From 58d03770ac5f78ff2d819caabea9371a041bf7be Mon Sep 17 00:00:00 2001
-From: Zoltan HERPAI <wigyori@uid0.hu>
-Date: Wed, 20 Mar 2024 09:36:02 +0100
-Subject: pwm: img: fix pwm clock lookup
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-22e8e19 has introduced a regression in the imgchip->pwm_clk lookup, whereas
-the clock name has also been renamed to "imgchip". This causes the driver
-failing to load:
-
-[ 0.546905] img-pwm 18101300.pwm: failed to get imgchip clock
-[ 0.553418] img-pwm: probe of 18101300.pwm failed with error -2
-
-Fix this lookup by reverting the clock name back to "pwm".
-
-Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
-Link: https://lore.kernel.org/r/20240320083602.81592-1-wigyori@uid0.hu
-Fixes: 22e8e19a46f7 ("pwm: img: Rename variable pointing to driver private data")
-Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
----
- drivers/pwm/pwm-img.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/pwm/pwm-img.c
-+++ b/drivers/pwm/pwm-img.c
-@@ -289,9 +289,9 @@ static int img_pwm_probe(struct platform
- return PTR_ERR(imgchip->sys_clk);
- }
-
-- imgchip->pwm_clk = devm_clk_get(&pdev->dev, "imgchip");
-+ imgchip->pwm_clk = devm_clk_get(&pdev->dev, "pwm");
- if (IS_ERR(imgchip->pwm_clk)) {
-- dev_err(&pdev->dev, "failed to get imgchip clock\n");
-+ dev_err(&pdev->dev, "failed to get pwm clock\n");
- return PTR_ERR(imgchip->pwm_clk);
- }
-