Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Synchronize official source code #115

Merged
merged 6 commits into from
Jul 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions include/kernel-5.15
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
LINUX_VERSION-5.15 = .158
LINUX_KERNEL_HASH-5.15.158 = f9071c83a4fd8b80af026b48cfc1869bfa25883f9148b92b5dc1e1e1e26dd5c6
LINUX_VERSION-5.15 = .161
LINUX_KERNEL_HASH-5.15.161 = d629f78680dc4b65e3d78b61406fb7757b960c83c206e63ad8c2606b3e3c474c
2 changes: 1 addition & 1 deletion package/network/services/hostapd/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
include $(TOPDIR)/rules.mk

PKG_NAME:=hostapd
PKG_RELEASE:=6
PKG_RELEASE:=7

PKG_SOURCE_URL:=http://w1.fi/hostap.git
PKG_SOURCE_PROTO:=git
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
From a329773522953892d9bb4548482d42fc93fea329 Mon Sep 17 00:00:00 2001
From: David Bauer <mail@david-bauer.net>
Date: Thu, 27 Jun 2024 18:45:19 +0200
Subject: [PATCH] AP: don't ignore probe-requests with invalid DSSS params

Don't ignore probe requests which contain an invalid DS parameter for the
current operating channel.

As the comment outlines, the drop shall only apply if
dot11RadioMeasurementActivated is set to 1.

However, it was observed Linux clients (Debian 12 / NixOS 23.11)
with an Intel 8265 NIC may generate a probe request frame with
dot11RadioMeasurementActivated set to false and an invalid DSSS
parameter.

These were also dropped even though they should not have been. They
however should not have contained this parameter in the first place.

Don't drop Probe Requests which contain such an invalid field. This may
lead to more probe responses being sent, however it does fix very
frequent connection issues for these clients on 2.4 GHz.

Signed-off-by: David Bauer <mail@david-bauer.net>
---
src/ap/beacon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/src/ap/beacon.c
+++ b/src/ap/beacon.c
@@ -1095,7 +1095,7 @@ void handle_probe_req(struct hostapd_dat
* is less likely to see them (Probe Request frame sent on a
* neighboring, but partially overlapping, channel).
*/
- if (elems.ds_params &&
+ if (elems.ds_params && 0 &&
hapd->iface->current_mode &&
(hapd->iface->current_mode->mode == HOSTAPD_MODE_IEEE80211G ||
hapd->iface->current_mode->mode == HOSTAPD_MODE_IEEE80211B) &&
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-5-maxi

--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1749,7 +1749,7 @@ static irqreturn_t vc4_cec_irq_handler(i
@@ -1751,7 +1751,7 @@ static irqreturn_t vc4_cec_irq_handler(i
return ret;
}

Expand All @@ -26,7 +26,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-5-maxi
{
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
/* clock period in microseconds */
@@ -1762,38 +1762,53 @@ static int vc4_hdmi_cec_adap_enable(stru
@@ -1764,38 +1764,53 @@ static int vc4_hdmi_cec_adap_enable(stru
val |= ((4700 / usecs) << VC4_HDMI_CEC_CNT_TO_4700_US_SHIFT) |
((4500 / usecs) << VC4_HDMI_CEC_CNT_TO_4500_US_SHIFT);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-6-maxi

--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1754,8 +1754,14 @@ static int vc4_hdmi_cec_enable(struct ce
@@ -1756,8 +1756,14 @@ static int vc4_hdmi_cec_enable(struct ce
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
/* clock period in microseconds */
const u32 usecs = 1000000 / CEC_CLOCK_FREQ;
Expand All @@ -40,7 +40,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-6-maxi
val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET |
VC4_HDMI_CEC_CNT_TO_4700_US_MASK |
VC4_HDMI_CEC_CNT_TO_4500_US_MASK);
@@ -1798,6 +1804,8 @@ static int vc4_hdmi_cec_disable(struct c
@@ -1800,6 +1806,8 @@ static int vc4_hdmi_cec_disable(struct c
HDMI_WRITE(HDMI_CEC_CNTRL_5, HDMI_READ(HDMI_CEC_CNTRL_5) |
VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Link: https://lore.kernel.org/r/20211025152903.1088803-9-maxime@cerno.tech

--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -2387,7 +2387,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2389,7 +2389,7 @@ static const struct vc4_hdmi_variant bcm
.encoder_type = VC4_ENCODER_TYPE_HDMI0,
.debugfs_name = "hdmi0_regs",
.card_name = "vc4-hdmi-0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
memcpy(&vc4_hdmi->audio.infoframe, &params->cea, sizeof(params->cea));
vc4_hdmi_set_audio_infoframe(encoder);

@@ -1678,6 +1803,8 @@ static void vc4_cec_read_msg(struct vc4_
@@ -1680,6 +1805,8 @@ static void vc4_cec_read_msg(struct vc4_
struct cec_msg *msg = &vc4_hdmi->cec_rx_msg;
unsigned int i;

Expand All @@ -562,7 +562,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
msg->len = 1 + ((cntrl1 & VC4_HDMI_CEC_REC_WRD_CNT_MASK) >>
VC4_HDMI_CEC_REC_WRD_CNT_SHIFT);

@@ -1696,11 +1823,12 @@ static void vc4_cec_read_msg(struct vc4_
@@ -1698,11 +1825,12 @@ static void vc4_cec_read_msg(struct vc4_
}
}

Expand All @@ -577,7 +577,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
cntrl1 = HDMI_READ(HDMI_CEC_CNTRL_1);
vc4_hdmi->cec_tx_ok = cntrl1 & VC4_HDMI_CEC_TX_STATUS_GOOD;
cntrl1 &= ~VC4_HDMI_CEC_START_XMIT_BEGIN;
@@ -1709,11 +1837,24 @@ static irqreturn_t vc4_cec_irq_handler_t
@@ -1711,11 +1839,24 @@ static irqreturn_t vc4_cec_irq_handler_t
return IRQ_WAKE_THREAD;
}

Expand All @@ -603,7 +603,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
vc4_hdmi->cec_rx_msg.len = 0;
cntrl1 = HDMI_READ(HDMI_CEC_CNTRL_1);
vc4_cec_read_msg(vc4_hdmi, cntrl1);
@@ -1726,6 +1867,18 @@ static irqreturn_t vc4_cec_irq_handler_r
@@ -1728,6 +1869,18 @@ static irqreturn_t vc4_cec_irq_handler_r
return IRQ_WAKE_THREAD;
}

Expand All @@ -622,7 +622,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
static irqreturn_t vc4_cec_irq_handler(int irq, void *priv)
{
struct vc4_hdmi *vc4_hdmi = priv;
@@ -1736,14 +1889,17 @@ static irqreturn_t vc4_cec_irq_handler(i
@@ -1738,14 +1891,17 @@ static irqreturn_t vc4_cec_irq_handler(i
if (!(stat & VC4_HDMI_CPU_CEC))
return IRQ_NONE;

Expand All @@ -642,15 +642,15 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return ret;
}

@@ -1752,6 +1908,7 @@ static int vc4_hdmi_cec_enable(struct ce
@@ -1754,6 +1910,7 @@ static int vc4_hdmi_cec_enable(struct ce
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
/* clock period in microseconds */
const u32 usecs = 1000000 / CEC_CLOCK_FREQ;
+ unsigned long flags;
u32 val;
int ret;

@@ -1759,6 +1916,8 @@ static int vc4_hdmi_cec_enable(struct ce
@@ -1761,6 +1918,8 @@ static int vc4_hdmi_cec_enable(struct ce
if (ret)
return ret;

Expand All @@ -659,7 +659,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
val = HDMI_READ(HDMI_CEC_CNTRL_5);
val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET |
VC4_HDMI_CEC_CNT_TO_4700_US_MASK |
@@ -1789,12 +1948,17 @@ static int vc4_hdmi_cec_enable(struct ce
@@ -1791,12 +1950,17 @@ static int vc4_hdmi_cec_enable(struct ce
if (!vc4_hdmi->variant->external_irq_controller)
HDMI_WRITE(HDMI_CEC_CPU_MASK_CLEAR, VC4_HDMI_CPU_CEC);

Expand All @@ -677,7 +677,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>

if (!vc4_hdmi->variant->external_irq_controller)
HDMI_WRITE(HDMI_CEC_CPU_MASK_SET, VC4_HDMI_CPU_CEC);
@@ -1802,6 +1966,8 @@ static int vc4_hdmi_cec_disable(struct c
@@ -1804,6 +1968,8 @@ static int vc4_hdmi_cec_disable(struct c
HDMI_WRITE(HDMI_CEC_CNTRL_5, HDMI_READ(HDMI_CEC_CNTRL_5) |
VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);

Expand All @@ -686,7 +686,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
pm_runtime_put(&vc4_hdmi->pdev->dev);

return 0;
@@ -1818,10 +1984,14 @@ static int vc4_hdmi_cec_adap_enable(stru
@@ -1820,10 +1986,14 @@ static int vc4_hdmi_cec_adap_enable(stru
static int vc4_hdmi_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr)
{
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
Expand All @@ -701,15 +701,15 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return 0;
}

@@ -1830,6 +2000,7 @@ static int vc4_hdmi_cec_adap_transmit(st
@@ -1832,6 +2002,7 @@ static int vc4_hdmi_cec_adap_transmit(st
{
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
struct drm_device *dev = vc4_hdmi->connector.dev;
+ unsigned long flags;
u32 val;
unsigned int i;

@@ -1838,6 +2009,8 @@ static int vc4_hdmi_cec_adap_transmit(st
@@ -1840,6 +2011,8 @@ static int vc4_hdmi_cec_adap_transmit(st
return -ENOMEM;
}

Expand All @@ -718,7 +718,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
for (i = 0; i < msg->len; i += 4)
HDMI_WRITE(HDMI_CEC_TX_DATA_1 + (i >> 2),
(msg->msg[i]) |
@@ -1853,6 +2026,9 @@ static int vc4_hdmi_cec_adap_transmit(st
@@ -1855,6 +2028,9 @@ static int vc4_hdmi_cec_adap_transmit(st
val |= VC4_HDMI_CEC_START_XMIT_BEGIN;

HDMI_WRITE(HDMI_CEC_CNTRL_1, val);
Expand All @@ -728,15 +728,15 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return 0;
}

@@ -1867,6 +2043,7 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1869,6 +2045,7 @@ static int vc4_hdmi_cec_init(struct vc4_
struct cec_connector_info conn_info;
struct platform_device *pdev = vc4_hdmi->pdev;
struct device *dev = &pdev->dev;
+ unsigned long flags;
u32 value;
int ret;

@@ -1887,10 +2064,12 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1889,10 +2066,12 @@ static int vc4_hdmi_cec_init(struct vc4_
cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector);
cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info);

Expand All @@ -749,7 +749,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>

vc4_hdmi_cec_update_clk_div(vc4_hdmi);

@@ -1909,7 +2088,9 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1911,7 +2090,9 @@ static int vc4_hdmi_cec_init(struct vc4_
if (ret)
goto err_remove_cec_rx_handler;
} else {
Expand All @@ -759,7 +759,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>

ret = request_threaded_irq(platform_get_irq(pdev, 0),
vc4_cec_irq_handler,
@@ -2179,6 +2360,7 @@ static int vc4_hdmi_bind(struct device *
@@ -2181,6 +2362,7 @@ static int vc4_hdmi_bind(struct device *
vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL);
if (!vc4_hdmi)
return -ENOMEM;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>

return 0;
}
@@ -1912,6 +1973,17 @@ static int vc4_hdmi_cec_enable(struct ce
@@ -1914,6 +1975,17 @@ static int vc4_hdmi_cec_enable(struct ce
u32 val;
int ret;

Expand All @@ -357,7 +357,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
if (ret)
return ret;
@@ -1958,6 +2030,17 @@ static int vc4_hdmi_cec_disable(struct c
@@ -1960,6 +2032,17 @@ static int vc4_hdmi_cec_disable(struct c
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
unsigned long flags;

Expand All @@ -375,7 +375,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);

if (!vc4_hdmi->variant->external_irq_controller)
@@ -1986,6 +2069,17 @@ static int vc4_hdmi_cec_adap_log_addr(st
@@ -1988,6 +2071,17 @@ static int vc4_hdmi_cec_adap_log_addr(st
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
unsigned long flags;

Expand All @@ -393,7 +393,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
HDMI_WRITE(HDMI_CEC_CNTRL_1,
(HDMI_READ(HDMI_CEC_CNTRL_1) & ~VC4_HDMI_CEC_ADDR_MASK) |
@@ -2004,6 +2098,17 @@ static int vc4_hdmi_cec_adap_transmit(st
@@ -2006,6 +2100,17 @@ static int vc4_hdmi_cec_adap_transmit(st
u32 val;
unsigned int i;

Expand All @@ -411,7 +411,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
if (msg->len > 16) {
drm_err(dev, "Attempting to transmit too much data (%d)\n", msg->len);
return -ENOMEM;
@@ -2360,6 +2465,7 @@ static int vc4_hdmi_bind(struct device *
@@ -2362,6 +2467,7 @@ static int vc4_hdmi_bind(struct device *
vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL);
if (!vc4_hdmi)
return -ENOMEM;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>

if (delayed_work_pending(&vc4_hdmi->scrambling_work))
cancel_delayed_work_sync(&vc4_hdmi->scrambling_work);
@@ -2523,6 +2517,14 @@ static int vc4_hdmi_bind(struct device *
@@ -2525,6 +2519,14 @@ static int vc4_hdmi_bind(struct device *
vc4_hdmi->pdev = pdev;
vc4_hdmi->variant = variant;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Changes from v1:

--- a/drivers/gpu/drm/drm_probe_helper.c
+++ b/drivers/gpu/drm/drm_probe_helper.c
@@ -796,6 +796,86 @@ void drm_kms_helper_poll_fini(struct drm
@@ -805,6 +805,86 @@ void drm_kms_helper_poll_fini(struct drm
}
EXPORT_SYMBOL(drm_kms_helper_poll_fini);

Expand Down Expand Up @@ -126,7 +126,7 @@ Changes from v1:
/**
* drm_helper_hpd_irq_event - hotplug processing
* @dev: drm_device
@@ -809,9 +889,10 @@ EXPORT_SYMBOL(drm_kms_helper_poll_fini);
@@ -818,9 +898,10 @@ EXPORT_SYMBOL(drm_kms_helper_poll_fini);
* interrupts for each connector.
*
* Drivers which support hotplug interrupts for each connector individually and
Expand All @@ -140,7 +140,7 @@ Changes from v1:
*
* This function must be called from process context with no mode
* setting locks held.
@@ -823,9 +904,7 @@ bool drm_helper_hpd_irq_event(struct drm
@@ -832,9 +913,7 @@ bool drm_helper_hpd_irq_event(struct drm
{
struct drm_connector *connector;
struct drm_connector_list_iter conn_iter;
Expand All @@ -150,7 +150,7 @@ Changes from v1:

if (!dev->mode_config.poll_enabled)
return false;
@@ -833,37 +912,8 @@ bool drm_helper_hpd_irq_event(struct drm
@@ -842,37 +921,8 @@ bool drm_helper_hpd_irq_event(struct drm
mutex_lock(&dev->mode_config.mutex);
drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>

--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1802,10 +1802,11 @@ static void vc4_hdmi_audio_exit(struct v
@@ -1804,10 +1804,11 @@ static void vc4_hdmi_audio_exit(struct v
static irqreturn_t vc4_hdmi_hpd_irq_thread(int irq, void *priv)
{
struct vc4_hdmi *vc4_hdmi = priv;
Expand Down

This file was deleted.

Loading
Loading