Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2025-01-22 17:15:59 +08:00
commit d0b812c1ff
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
44 changed files with 1566 additions and 302 deletions

View File

@ -438,13 +438,14 @@ endef
define Build/jffs2
rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 && \
mkdir -p $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$$(dirname $(1)) && \
cp $@ $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$(1) && \
mkdir -p $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$$(dirname $(word 1,$(1))) && \
cp $@ $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$(word 1,$(1)) && \
$(STAGING_DIR_HOST)/bin/mkfs.jffs2 --pad \
$(if $(CONFIG_BIG_ENDIAN),--big-endian,--little-endian) \
--squash-uids -v -e $(patsubst %k,%KiB,$(BLOCKSIZE)) \
-o $@.new \
-d $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 \
$(wordlist 2,$(words $(1)),$(1)) \
2>&1 1>/dev/null | awk '/^.+$$$$/' && \
$(STAGING_DIR_HOST)/bin/padjffs2 $@.new -J $(patsubst %k,,$(BLOCKSIZE))
-rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/

View File

@ -1,2 +1,2 @@
LINUX_VERSION-6.6 = .71
LINUX_KERNEL_HASH-6.6.71 = 219715ba2dcfa6539fba09ad3f9212772f3507189eb60d77f8e89b06c32e724e
LINUX_VERSION-6.6 = .73
LINUX_KERNEL_HASH-6.6.73 = d2028db190c201650898be8db1c705e9fe73ab44fc04290b4f7af63514122490

View File

@ -175,7 +175,6 @@ define Kernel/PrepareConfigPerRootfs
[ ! -d "$(1)" ] || rm -rf $(1); \
mkdir $(1) && $(CP) -T $(LINUX_DIR) $(1); \
touch $(1)/.config; \
rm -rf $(1)/usr/initramfs_data.cpio*; \
}
endef
@ -190,6 +189,7 @@ define Kernel/CompileImage/Initramfs
$(call Kernel/Configure/Initramfs,$(if $(1),$(1),$(TARGET_DIR)),$(LINUX_DIR)$(2)); \
$(CP) $(GENERIC_PLATFORM_DIR)/other-files/init $(if $(1),$(1),$(TARGET_DIR))/init; \
$(if $(SOURCE_DATE_EPOCH),touch -hcd "@$(SOURCE_DATE_EPOCH)" $(if $(1),$(1),$(TARGET_DIR)) $(if $(1),$(1),$(TARGET_DIR))/init;) \
rm -rf $(LINUX_DIR)$(2)/usr/initramfs_data.cpio*; \
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE), \
$(call locked,{ \
$(if $(call qstrip,$(CONFIG_EXTERNAL_CPIO)), \

View File

@ -1649,3 +1649,21 @@ define KernelPackage/qrtr-mhi/description
endef
$(eval $(call KernelPackage,qrtr-mhi))
define KernelPackage/unix-diag
TITLE:=UNIX socket monitoring interface
KCONFIG:=CONFIG_UNIX_DIAG
FILES:= $(LINUX_DIR)/net/unix/unix_diag.ko
AUTOLOAD:=$(call AutoProbe,unix_diag)
endef
$(eval $(call KernelPackage,unix-diag))
define KernelPackage/packet-diag
TITLE:=Packet sockets monitoring interface
KCONFIG:=CONFIG_PACKET_DIAG
FILES:= $(LINUX_DIR)/net/packet/af_packet_diag.ko
AUTOLOAD:=$(call AutoProbe,af_packet_diag)
endef
$(eval $(call KernelPackage,packet-diag))

View File

@ -1,541 +1,694 @@
--- a/drivers/bus/mhi/host/trace.h
+++ b/drivers/bus/mhi/host/trace.h
@@ -104,7 +104,7 @@ TRACE_EVENT(mhi_gen_tre,
@@ -104,7 +104,11 @@ TRACE_EVENT(mhi_gen_tre,
),
TP_fast_assign(
- __assign_str(name);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(name);
+#else
+ __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
__entry->ch_num = mhi_chan->chan;
__entry->wp = mhi_tre;
__entry->tre_ptr = le64_to_cpu(mhi_tre->ptr);
@@ -132,7 +132,7 @@ TRACE_EVENT(mhi_intvec_states,
@@ -132,7 +136,11 @@ TRACE_EVENT(mhi_intvec_states,
),
TP_fast_assign(
- __assign_str(name);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(name);
+#else
+ __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
__entry->local_ee = mhi_cntrl->ee;
__entry->state = mhi_cntrl->dev_state;
__entry->dev_ee = dev_ee;
@@ -159,7 +159,7 @@ TRACE_EVENT(mhi_tryset_pm_state,
@@ -159,7 +167,11 @@ TRACE_EVENT(mhi_tryset_pm_state,
),
TP_fast_assign(
- __assign_str(name);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(name);
+#else
+ __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
if (pm_state)
pm_state = __fls(pm_state);
__entry->pm_state = pm_state;
@@ -185,7 +185,7 @@ DECLARE_EVENT_CLASS(mhi_process_event_ri
@@ -185,7 +197,11 @@ DECLARE_EVENT_CLASS(mhi_process_event_ri
),
TP_fast_assign(
- __assign_str(name);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(name);
+#else
+ __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
__entry->rp = rp;
__entry->ptr = le64_to_cpu(rp->ptr);
__entry->dword0 = le32_to_cpu(rp->dword[0]);
@@ -227,7 +227,7 @@ DECLARE_EVENT_CLASS(mhi_update_channel_s
@@ -227,7 +243,11 @@ DECLARE_EVENT_CLASS(mhi_update_channel_s
),
TP_fast_assign(
- __assign_str(name);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(name);
+#else
+ __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
__entry->ch_num = mhi_chan->chan;
__entry->state = state;
__entry->reason = reason;
@@ -266,7 +266,7 @@ TRACE_EVENT(mhi_pm_st_transition,
@@ -266,7 +286,11 @@ TRACE_EVENT(mhi_pm_st_transition,
),
TP_fast_assign(
- __assign_str(name);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(name);
+#else
+ __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
__entry->state = state;
),
--- a/drivers/net/wireless/ath/ath10k/trace.h
+++ b/drivers/net/wireless/ath/ath10k/trace.h
@@ -55,8 +55,8 @@ DECLARE_EVENT_CLASS(ath10k_log_event,
@@ -55,8 +55,13 @@ DECLARE_EVENT_CLASS(ath10k_log_event,
__vstring(msg, vaf->fmt, vaf->va)
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va);
),
TP_printk(
@@ -92,8 +92,8 @@ TRACE_EVENT(ath10k_log_dbg,
@@ -92,8 +97,13 @@ TRACE_EVENT(ath10k_log_dbg,
__vstring(msg, vaf->fmt, vaf->va)
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->level = level;
__assign_vstr(msg, vaf->fmt, vaf->va);
),
@@ -121,10 +121,10 @@ TRACE_EVENT(ath10k_log_dbg_dump,
@@ -121,10 +131,17 @@ TRACE_EVENT(ath10k_log_dbg_dump,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
- __assign_str(msg);
- __assign_str(prefix);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
__assign_str(msg);
__assign_str(prefix);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+ __assign_str(msg, msg);
+ __assign_str(prefix, prefix);
+#endif
__entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, buf_len);
),
@@ -152,8 +152,8 @@ TRACE_EVENT(ath10k_wmi_cmd,
@@ -152,8 +169,13 @@ TRACE_EVENT(ath10k_wmi_cmd,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->id = id;
__entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, buf_len);
@@ -182,8 +182,8 @@ TRACE_EVENT(ath10k_wmi_event,
@@ -182,8 +204,13 @@ TRACE_EVENT(ath10k_wmi_event,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->id = id;
__entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, buf_len);
@@ -211,8 +211,8 @@ TRACE_EVENT(ath10k_htt_stats,
@@ -211,8 +238,13 @@ TRACE_EVENT(ath10k_htt_stats,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, buf_len);
),
@@ -239,8 +239,8 @@ TRACE_EVENT(ath10k_wmi_dbglog,
@@ -239,8 +271,13 @@ TRACE_EVENT(ath10k_wmi_dbglog,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->hw_type = ar->hw_rev;
__entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, buf_len);
@@ -269,8 +269,8 @@ TRACE_EVENT(ath10k_htt_pktlog,
@@ -269,8 +306,13 @@ TRACE_EVENT(ath10k_htt_pktlog,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->hw_type = ar->hw_rev;
__entry->buf_len = buf_len;
memcpy(__get_dynamic_array(pktlog), buf, buf_len);
@@ -301,8 +301,8 @@ TRACE_EVENT(ath10k_htt_tx,
@@ -301,8 +343,13 @@ TRACE_EVENT(ath10k_htt_tx,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->msdu_id = msdu_id;
__entry->msdu_len = msdu_len;
__entry->vdev_id = vdev_id;
@@ -332,8 +332,8 @@ TRACE_EVENT(ath10k_txrx_tx_unref,
@@ -332,8 +379,13 @@ TRACE_EVENT(ath10k_txrx_tx_unref,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->msdu_id = msdu_id;
),
@@ -358,8 +358,8 @@ DECLARE_EVENT_CLASS(ath10k_hdr_event,
@@ -358,8 +410,13 @@ DECLARE_EVENT_CLASS(ath10k_hdr_event,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->len = ath10k_frm_hdr_len(data, len);
memcpy(__get_dynamic_array(data), data, __entry->len);
),
@@ -386,8 +386,8 @@ DECLARE_EVENT_CLASS(ath10k_payload_event
@@ -386,8 +443,13 @@ DECLARE_EVENT_CLASS(ath10k_payload_event
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->len = len - ath10k_frm_hdr_len(data, len);
memcpy(__get_dynamic_array(payload),
data + ath10k_frm_hdr_len(data, len), __entry->len);
@@ -435,8 +435,8 @@ TRACE_EVENT(ath10k_htt_rx_desc,
@@ -435,8 +497,13 @@ TRACE_EVENT(ath10k_htt_rx_desc,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->hw_type = ar->hw_rev;
__entry->len = len;
memcpy(__get_dynamic_array(rxdesc), data, len);
@@ -472,8 +472,8 @@ TRACE_EVENT(ath10k_wmi_diag_container,
@@ -472,8 +539,13 @@ TRACE_EVENT(ath10k_wmi_diag_container,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->type = type;
__entry->timestamp = timestamp;
__entry->code = code;
@@ -505,8 +505,8 @@ TRACE_EVENT(ath10k_wmi_diag,
@@ -505,8 +577,13 @@ TRACE_EVENT(ath10k_wmi_diag,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->len = len;
memcpy(__get_dynamic_array(data), data, len);
),
--- a/drivers/net/wireless/ath/ath11k/trace.h
+++ b/drivers/net/wireless/ath/ath11k/trace.h
@@ -48,8 +48,8 @@ TRACE_EVENT(ath11k_htt_pktlog,
@@ -48,8 +48,13 @@ TRACE_EVENT(ath11k_htt_pktlog,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->buf_len = buf_len;
__entry->pktlog_checksum = pktlog_checksum;
memcpy(__get_dynamic_array(pktlog), buf, buf_len);
@@ -77,8 +77,8 @@ TRACE_EVENT(ath11k_htt_ppdu_stats,
@@ -77,8 +82,13 @@ TRACE_EVENT(ath11k_htt_ppdu_stats,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->len = len;
memcpy(__get_dynamic_array(ppdu), data, len);
),
@@ -105,8 +105,8 @@ TRACE_EVENT(ath11k_htt_rxdesc,
@@ -105,8 +115,13 @@ TRACE_EVENT(ath11k_htt_rxdesc,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->len = len;
__entry->log_type = log_type;
memcpy(__get_dynamic_array(rxdesc), data, len);
@@ -130,8 +130,8 @@ DECLARE_EVENT_CLASS(ath11k_log_event,
@@ -130,8 +145,13 @@ DECLARE_EVENT_CLASS(ath11k_log_event,
__vstring(msg, vaf->fmt, vaf->va)
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va);
),
TP_printk(
@@ -171,8 +171,8 @@ TRACE_EVENT(ath11k_wmi_cmd,
@@ -171,8 +191,13 @@ TRACE_EVENT(ath11k_wmi_cmd,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__entry->id = id;
__entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, buf_len);
@@ -201,8 +201,8 @@ TRACE_EVENT(ath11k_wmi_event,
@@ -201,8 +226,13 @@ TRACE_EVENT(ath11k_wmi_event,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__entry->id = id;
__entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, buf_len);
@@ -230,8 +230,8 @@ TRACE_EVENT(ath11k_log_dbg,
@@ -230,8 +260,13 @@ TRACE_EVENT(ath11k_log_dbg,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__entry->level = level;
WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg),
ATH11K_MSG_MAX, vaf->fmt,
@@ -262,10 +262,10 @@ TRACE_EVENT(ath11k_log_dbg_dump,
@@ -262,10 +297,17 @@ TRACE_EVENT(ath11k_log_dbg_dump,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
- __assign_str(msg);
- __assign_str(prefix);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
__assign_str(msg);
__assign_str(prefix);
+#else
+ __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev));
+ __assign_str(msg, msg);
+ __assign_str(prefix, prefix);
+#endif
__entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, buf_len);
),
@@ -292,8 +292,8 @@ TRACE_EVENT(ath11k_wmi_diag,
@@ -292,8 +334,13 @@ TRACE_EVENT(ath11k_wmi_diag,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__entry->len = len;
memcpy(__get_dynamic_array(data), data, len);
),
@@ -318,8 +318,8 @@ TRACE_EVENT(ath11k_ps_timekeeper,
@@ -318,8 +365,14 @@ TRACE_EVENT(ath11k_ps_timekeeper,
__field(u32, peer_ps_timestamp)
),
- TP_fast_assign(__assign_str(device);
- __assign_str(driver);
+ TP_fast_assign(__assign_str(device, dev_name(ar->ab->dev));
+ TP_fast_assign(
+#if LINUX_VERSION_IS_GEQ(6,10,0)
+ __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
memcpy(__get_dynamic_array(peer_addr), peer_addr,
ETH_ALEN);
__entry->peer_ps_state = peer_ps_state;
--- a/drivers/net/wireless/ath/ath12k/trace.h
+++ b/drivers/net/wireless/ath/ath12k/trace.h
@@ -36,8 +36,8 @@ TRACE_EVENT(ath12k_htt_pktlog,
@@ -36,8 +36,13 @@ TRACE_EVENT(ath12k_htt_pktlog,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->buf_len = buf_len;
__entry->pktlog_checksum = pktlog_checksum;
memcpy(__get_dynamic_array(pktlog), buf, buf_len);
@@ -73,8 +73,8 @@ TRACE_EVENT(ath12k_htt_ppdu_stats,
@@ -73,8 +78,13 @@ TRACE_EVENT(ath12k_htt_ppdu_stats,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->len = len;
__entry->info = ar->pdev->timestamp.info;
__entry->sync_tstmp_lo_us = ar->pdev->timestamp.sync_timestamp_hi_us;
@@ -117,8 +117,8 @@ TRACE_EVENT(ath12k_htt_rxdesc,
@@ -117,8 +127,13 @@ TRACE_EVENT(ath12k_htt_rxdesc,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->len = len;
__entry->type = type;
__entry->info = ar->pdev->timestamp.info;
@@ -153,8 +153,8 @@ TRACE_EVENT(ath12k_wmi_diag,
@@ -153,8 +168,13 @@ TRACE_EVENT(ath12k_wmi_diag,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__entry->len = len;
memcpy(__get_dynamic_array(data), data, len);
),
--- a/drivers/net/wireless/ath/ath6kl/trace.h
+++ b/drivers/net/wireless/ath/ath6kl/trace.h
@@ -304,8 +304,8 @@ TRACE_EVENT(ath6kl_log_dbg_dump,
@@ -304,8 +304,13 @@ TRACE_EVENT(ath6kl_log_dbg_dump,
),
TP_fast_assign(
- __assign_str(msg);
- __assign_str(prefix);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(msg);
__assign_str(prefix);
+#else
+ __assign_str(msg, msg);
+ __assign_str(prefix, prefix);
+#endif
__entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, buf_len);
),
--- a/drivers/net/wireless/ath/trace.h
+++ b/drivers/net/wireless/ath/trace.h
@@ -44,8 +44,8 @@ TRACE_EVENT(ath_log,
@@ -44,8 +44,13 @@ TRACE_EVENT(ath_log,
),
TP_fast_assign(
- __assign_str(device);
- __assign_str(driver);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, wiphy_name(wiphy));
+ __assign_str(driver, KBUILD_MODNAME);
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va);
),
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/tracepoint.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/tracepoint.h
@@ -41,7 +41,7 @@ TRACE_EVENT(brcmf_err,
@@ -41,7 +41,11 @@ TRACE_EVENT(brcmf_err,
__vstring(msg, vaf->fmt, vaf->va)
),
TP_fast_assign(
- __assign_str(func);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(func);
+#else
+ __assign_str(func, func);
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va);
),
TP_printk("%s: %s", __get_str(func), __get_str(msg))
@@ -57,7 +57,7 @@ TRACE_EVENT(brcmf_dbg,
@@ -57,7 +61,11 @@ TRACE_EVENT(brcmf_dbg,
),
TP_fast_assign(
__entry->level = level;
- __assign_str(func);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(func);
+#else
+ __assign_str(func, func);
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va);
),
TP_printk("%s: %s", __get_str(func), __get_str(msg))
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac.h
@@ -81,7 +81,7 @@ TRACE_EVENT(brcms_macintstatus,
@@ -81,7 +81,11 @@ TRACE_EVENT(brcms_macintstatus,
__field(u32, mask)
),
TP_fast_assign(
- __assign_str(dev);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(dev);
+#else
+ __assign_str(dev, dev_name(dev));
+#endif
__entry->in_isr = in_isr;
__entry->macintstatus = macintstatus;
__entry->mask = mask;
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_msg.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_msg.h
@@ -71,7 +71,7 @@ TRACE_EVENT(brcms_dbg,
@@ -71,7 +71,11 @@ TRACE_EVENT(brcms_dbg,
),
TP_fast_assign(
__entry->level = level;
- __assign_str(func);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(func);
+#else
+ __assign_str(func, func);
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va);
),
TP_printk("%s: %s", __get_str(func), __get_str(msg))
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_tx.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_tx.h
@@ -31,7 +31,7 @@ TRACE_EVENT(brcms_txdesc,
@@ -31,7 +31,11 @@ TRACE_EVENT(brcms_txdesc,
__dynamic_array(u8, txh, txh_len)
),
TP_fast_assign(
- __assign_str(dev);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(dev);
+#else
+ __assign_str(dev, dev_name(dev));
+#endif
memcpy(__get_dynamic_array(txh), txh, txh_len);
),
TP_printk("[%s] txdesc", __get_str(dev))
@@ -54,7 +54,7 @@ TRACE_EVENT(brcms_txstatus,
@@ -54,7 +58,11 @@ TRACE_EVENT(brcms_txstatus,
__field(u16, ackphyrxsh)
),
TP_fast_assign(
- __assign_str(dev);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(dev);
+#else
+ __assign_str(dev, dev_name(dev));
+#endif
__entry->framelen = framelen;
__entry->frameid = frameid;
__entry->status = status;
@@ -85,7 +85,7 @@ TRACE_EVENT(brcms_ampdu_session,
@@ -85,7 +93,11 @@ TRACE_EVENT(brcms_ampdu_session,
__field(u16, dma_len)
),
TP_fast_assign(
- __assign_str(dev);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(dev);
+#else
+ __assign_str(dev, dev_name(dev));
+#endif
__entry->max_ampdu_len = max_ampdu_len;
__entry->max_ampdu_frames = max_ampdu_frames;
__entry->ampdu_len = ampdu_len;
--- a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-msg.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-msg.h
@@ -57,7 +57,7 @@ TRACE_EVENT(iwlwifi_dbg,
@@ -57,7 +57,11 @@ TRACE_EVENT(iwlwifi_dbg,
),
TP_fast_assign(
__entry->level = level;
- __assign_str(function);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(function);
+#else
+ __assign_str(function, function);
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va);
),
TP_printk("%s", __get_str(msg))
--- a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h
@@ -87,7 +87,7 @@ static inline void trace_ ## name(proto)
@@ -87,7 +87,11 @@ static inline void trace_ ## name(proto)
#endif
#define DEV_ENTRY __string(dev, dev_name(dev))
-#define DEV_ASSIGN __assign_str(dev)
+#if LINUX_VERSION_IS_GEQ(6,10,0)
#define DEV_ASSIGN __assign_str(dev)
+#else
+#define DEV_ASSIGN __assign_str(dev, dev_name(dev))
+#endif
#include "iwl-devtrace-io.h"
#include "iwl-devtrace-ucode.h"
--- a/include/trace/events/qrtr.h
+++ b/include/trace/events/qrtr.h
@@ -102,7 +102,7 @@ TRACE_EVENT(qrtr_ns_message,
@@ -102,7 +102,11 @@ TRACE_EVENT(qrtr_ns_message,
),
TP_fast_assign(
- __assign_str(ctrl_pkt_str);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(ctrl_pkt_str);
+#else
+ __assign_str(ctrl_pkt_str, ctrl_pkt_str);
+#endif
__entry->sq_node = sq_node;
__entry->sq_port = sq_port;
),
--- a/net/mac80211/trace.h
+++ b/net/mac80211/trace.h
@@ -33,7 +33,7 @@
@@ -31,9 +31,15 @@
#define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, sdata) \
__field(bool, p2p) \
__string(vif_name, sdata->name)
+#if LINUX_VERSION_IS_GEQ(6,10,0)
#define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \
__entry->p2p = sdata->vif.p2p; \
- __assign_str(vif_name)
__assign_str(vif_name)
+#else
+#define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \
+ __entry->p2p = sdata->vif.p2p; \
+ __assign_str(vif_name, sdata->name)
+#endif
#define VIF_PR_FMT " vif:%s(%d%s)"
#define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : ""
--- a/net/wireless/trace.h
+++ b/net/wireless/trace.h
@@ -446,7 +446,7 @@ TRACE_EVENT(rdev_add_virtual_intf,
@@ -446,7 +446,11 @@ TRACE_EVENT(rdev_add_virtual_intf,
),
TP_fast_assign(
WIPHY_ASSIGN;
- __assign_str(vir_intf_name);
+#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(vir_intf_name);
+#else
+ __assign_str(vir_intf_name, name ? name : "<noname>");
+#endif
__entry->type = type;
),
TP_printk(WIPHY_PR_FMT ", virtual intf name: %s, type: %d",

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ethtool
PKG_VERSION:=6.10
PKG_VERSION:=6.11
PKG_RELEASE:=1
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/software/network/ethtool
PKG_HASH:=cc613fe8a2bcddee17a1e6e0d763c0f3ea33c7e930658d2d7f601aa65e426a1f
PKG_HASH:=8d91f5c72ae3f25b7e88d4781279dcb320f71e30058914370b1c574c96b31202
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING

View File

@ -13,9 +13,10 @@ PKG_RELEASE:=1
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uci.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2025-01-17
PKG_SOURCE_VERSION:=fb3c2343b17b759b175f11aec5b3fbb1cf48bbc3
PKG_MIRROR_HASH:=c9302f4a1cb400134cb9fc0622fb6a04bbe8c55bcc83ec454caadb1e62f3257e
PKG_SOURCE_DATE:=2025-01-20
PKG_SOURCE_VERSION:=16ff0badbde7e17ec3bd1f827ffe45922956cf86
PKG_MIRROR_HASH:=e91ee4a2c0baaafe1d8ccd5321de70a8412a50323b0b27bbc7ad145e77018a22
PKG_ABI_VERSION:=20250120
PKG_LICENSE:=LGPL-2.1
PKG_LICENSE_FILES:=
@ -33,7 +34,7 @@ define Package/libuci
CATEGORY:=Libraries
TITLE:=C library for the Unified Configuration Interface (UCI)
DEPENDS:=+libubox
ABI_VERSION:=20250117
ABI_VERSION:=$(PKG_ABI_VERSION)
endef
define Package/uci
@ -55,11 +56,12 @@ TARGET_LDFLAGS += -L$(STAGING_DIR)/usr/lib
CMAKE_OPTIONS += \
-DLUAPATH=/usr/lib/lua \
-DABIVERSION=$(PKG_ABI_VERSION) \
$(if $(DEBUG),-DUCI_DEBUG=ON)
define Package/libuci/install
$(INSTALL_DIR) $(1)/lib
$(CP) $(PKG_BUILD_DIR)/libuci.so* $(1)/lib/
$(CP) $(PKG_BUILD_DIR)/libuci.so.* $(1)/lib/
endef
define Package/libuci-lua/install

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fritz-tools
PKG_RELEASE:=2
PKG_RELEASE:=3
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk

View File

@ -8,6 +8,9 @@
* that is Not copyrighted -- provided to the public domain
* Version 1.4 11 December 2005 Mark Adler
*
* Modifications to also handle calibration data in reversed byte order
* (c) 2024 by <dzsoftware@posteo.org>.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@ -28,31 +31,54 @@
#include <assert.h>
#include <unistd.h>
#include <stdint.h>
#include <stdbool.h>
#include <stdlib.h>
#include <endian.h>
#include <errno.h>
#include "zlib.h"
#define CHUNK 1024
#define DEFAULT_BUFFERSIZE (129 * 1024)
static inline size_t special_min(size_t a, size_t b)
#define MIN(a,b) (((a)<(b))?(a):(b))
/* Reverse byte order in data buffer.
* 'top' is position of last valid data byte = (datasize - 1)
*/
static void buffer_reverse(unsigned char *data, unsigned int top)
{
return a == 0 ? b : (a < b ? a : b);
register unsigned char swapbyte;
const unsigned int center = top / 2;
for (unsigned int bottom = 0; bottom < center; ++bottom, --top) {
swapbyte = data[bottom];
data[bottom] = data[top];
data[top] = swapbyte;
}
}
/* Decompress from file source to file dest until stream ends or EOF.
inf() returns Z_OK on success, Z_MEM_ERROR if memory could not be
allocated for processing, Z_DATA_ERROR if the deflate data is
invalid or incomplete, Z_VERSION_ERROR if the version of zlib.h and
the version of the library linked do not match, or Z_ERRNO if there
is an error reading or writing the files. */
static int inf(FILE *source, FILE *dest, size_t limit, size_t skip)
/* Decompress from file source to data buffer until stream ends
* or *limit bytes have been written to buffer.
*
* On call, 'limit' must reference a variable containing the intended
* number of bytes to retrieve (must be <= allocated buffer size).
*
* Return values (success):
* Z_END_STREAM if complete data was retrieved (*limit == size of complete data),
* or Z_OK if data was retrieved up to limit (*limit == original value).
*
* Return values (failure):
* Z_MEM_ERROR if memory could not be allocated for processing,
* Z_DATA_ERROR if the deflate data is invalid or incomplete,
* Z_VERSION_ERROR if the version of zlib.h and the version of the
* library linked do not match, or
* Z_ERRNO if there is an error reading or writing the files.
*/
static int inflate_to_buffer(FILE *source, unsigned char *buf, size_t *limit)
{
int ret;
size_t have;
z_stream strm;
unsigned char in[CHUNK];
unsigned char out[CHUNK];
/* allocate inflate state */
strm.zalloc = Z_NULL;
@ -64,6 +90,10 @@ static int inf(FILE *source, FILE *dest, size_t limit, size_t skip)
if (ret != Z_OK)
return ret;
/* set data buffer as stream output */
strm.avail_out = *limit;
strm.next_out = buf;
/* decompress until deflate stream ends or end of file */
do {
strm.avail_in = fread(in, 1, CHUNK, source);
@ -75,35 +105,28 @@ static int inf(FILE *source, FILE *dest, size_t limit, size_t skip)
break;
strm.next_in = in;
/* run inflate() on input until output buffer not full */
do {
strm.avail_out = CHUNK;
strm.next_out = out;
ret = inflate(&strm, Z_NO_FLUSH);
assert(ret != Z_STREAM_ERROR); /* state not clobbered */
switch (ret) {
/* run inflate(), fill data buffer with all available output */
ret = inflate(&strm, Z_FINISH);
assert(ret != Z_STREAM_ERROR); /* state not clobbered */
switch (ret) {
case Z_NEED_DICT:
ret = Z_DATA_ERROR; /* and fall through */
case Z_DATA_ERROR:
case Z_MEM_ERROR:
(void)inflateEnd(&strm);
return ret;
}
have = special_min(limit, CHUNK - strm.avail_out) - skip;
if (fwrite(&out[skip], have, 1, dest) != 1 || ferror(dest)) {
(void)inflateEnd(&strm);
return Z_ERRNO;
}
skip = 0;
limit -= have;
} while (strm.avail_out == 0 && limit > 0);
}
/* done when inflate() says it's done or limit reached */
} while (ret != Z_STREAM_END && strm.avail_out > 0);
/* done when inflate() says it's done */
} while (ret != Z_STREAM_END && limit > 0);
/* set limit to end of retrieved data */
assert(strm.total_out <= *limit);
*limit = strm.total_out;
/* clean up and return */
(void)inflateEnd(&strm);
return (limit == 0 ? Z_OK : (ret == Z_STREAM_END ? Z_OK : Z_DATA_ERROR));
return (ret == Z_STREAM_END ? Z_STREAM_END : (strm.avail_out == 0 ? Z_OK : Z_DATA_ERROR));
}
/* report a zlib or i/o error */
@ -140,7 +163,8 @@ static unsigned int get_num(char *str)
static void usage(void)
{
fprintf(stderr, "Usage: fritz_cal_extract [-s seek offset] [-i skip] [-o output file] [-l limit] [infile] -e entry_id\n"
fprintf(stderr, "Usage: fritz_cal_extract -e entry_id [-s seek offset] [-l limit]\n"
"\t[-r reverse extracted data] [-i skip n bytes] [-o output file] [infile]\n"
"Finds and extracts zlib compressed calibration data in the EVA loader\n");
exit(EXIT_FAILURE);
}
@ -154,15 +178,18 @@ struct cal_entry {
int main(int argc, char **argv)
{
struct cal_entry cal = { .len = 0 };
unsigned char *buf = NULL;
FILE *in = stdin;
FILE *out = stdout;
size_t datasize = DEFAULT_BUFFERSIZE;
size_t limit = 0, skip = 0;
int initial_offset = 0;
int entry = -1;
bool reversed = false, limit_was_set = true;
int ret;
int opt;
while ((opt = getopt(argc, argv, "s:e:o:l:i:")) != -1) {
while ((opt = getopt(argc, argv, "s:e:o:l:i:r")) != -1) {
switch (opt) {
case 's':
initial_offset = (int)get_num(optarg);
@ -199,6 +226,9 @@ int main(int argc, char **argv)
goto out_bad;
}
break;
case 'r':
reversed = true;
break;
default: /* '?' */
usage();
}
@ -243,11 +273,50 @@ int main(int argc, char **argv)
goto out_bad;
}
ret = inf(in, out, limit, skip);
if (ret == Z_OK)
goto out;
/* Set boundaries. Only keep default datasize if we need complete data
* for reversal and didn't set a higher limit. */
if (!limit) {
limit_was_set = false;
limit = datasize - skip;
}
datasize = (reversed && datasize >= limit + skip) ? datasize : (limit + skip);
zerr(ret);
/* Create data buffer. */
buf = malloc(datasize);
assert(buf != NULL);
ret = inflate_to_buffer(in, buf, &datasize);
if ((reversed || !limit_was_set) && ret != Z_STREAM_END) { /* didn't read to stream end */
fprintf(stderr, "Failed: Data exceeds buffer size of %u. Refusing to reverse"
" or store incomplete data."
" Use a higher limit [-l] to increase buffer size.\n",
(unsigned int) datasize);
goto out_bad;
}
ret = (ret == Z_STREAM_END) ? Z_OK : ret; /* normalize return value */
if (ret != Z_OK) {
zerr(ret);
goto out_bad;
}
if (reversed)
buffer_reverse(buf, datasize - 1);
if (datasize <= skip) {
fprintf(stderr, "Failed to skip %u bytes, total data size is %u!\n",
(unsigned int)skip, (unsigned int)datasize);
goto out_bad;
}
limit = MIN(limit, datasize - skip);
if (fwrite(&buf[skip], limit, 1, out) != 1 || ferror(out)) {
fprintf(stderr, "Failed to write data buffer to output file");
goto out_bad;
}
goto out;
out_bad:
ret = EXIT_FAILURE;
@ -257,5 +326,6 @@ out:
fclose(in);
if (out)
fclose(out);
free(buf);
return ret;
}

View File

@ -40,7 +40,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
--- a/drivers/thermal/thermal_of.c
+++ b/drivers/thermal/thermal_of.c
@@ -245,7 +245,7 @@ static void thermal_of_parameters_init(s
@@ -246,7 +246,7 @@ static void thermal_of_parameters_init(s
{
int coef[2];
int ncoef = ARRAY_SIZE(coef);
@ -49,7 +49,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
tzp->no_hwmon = true;
@@ -257,14 +257,11 @@ static void thermal_of_parameters_init(s
@@ -258,14 +258,11 @@ static void thermal_of_parameters_init(s
* thermal zone. Thus, we are considering only the first two
* values as slope and offset.
*/
@ -67,7 +67,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
}
static struct device_node *thermal_of_zone_get_by_name(struct thermal_zone_device *tz)
@@ -458,10 +455,15 @@ static void thermal_of_zone_unregister(s
@@ -459,10 +456,15 @@ static void thermal_of_zone_unregister(s
* zone properties and registers new thermal zone with those
* properties.
*
@ -83,7 +83,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
*
* Return: a valid thermal zone structure pointer on success.
* - EINVAL: if the device tree thermal description is malformed
@@ -469,11 +471,11 @@ static void thermal_of_zone_unregister(s
@@ -470,11 +472,11 @@ static void thermal_of_zone_unregister(s
* - Other negative errors are returned by the underlying called functions
*/
static struct thermal_zone_device *thermal_of_zone_register(struct device_node *sensor, int id, void *data,
@ -97,7 +97,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
struct thermal_zone_device_ops *of_ops;
struct device_node *np;
int delay, pdelay;
@@ -508,7 +510,7 @@ static struct thermal_zone_device *therm
@@ -509,7 +511,7 @@ static struct thermal_zone_device *therm
goto out_kfree_trips;
}
@ -106,7 +106,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
of_ops->bind = thermal_of_bind;
of_ops->unbind = thermal_of_unbind;
@@ -516,7 +518,7 @@ static struct thermal_zone_device *therm
@@ -517,7 +519,7 @@ static struct thermal_zone_device *therm
mask = GENMASK_ULL((ntrips) - 1, 0);
tz = thermal_zone_device_register_with_trips(np->name, trips, ntrips,
@ -115,7 +115,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
pdelay, delay);
if (IS_ERR(tz)) {
ret = PTR_ERR(tz);
@@ -571,6 +573,7 @@ static int devm_thermal_of_zone_match(st
@@ -572,6 +574,7 @@ static int devm_thermal_of_zone_match(st
struct thermal_zone_device *devm_thermal_of_zone_register(struct device *dev, int sensor_id, void *data,
const struct thermal_zone_device_ops *ops)
{
@ -123,7 +123,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
struct thermal_zone_device **ptr, *tzd;
ptr = devres_alloc(devm_thermal_of_zone_release, sizeof(*ptr),
@@ -578,7 +581,7 @@ struct thermal_zone_device *devm_thermal
@@ -579,7 +582,7 @@ struct thermal_zone_device *devm_thermal
if (!ptr)
return ERR_PTR(-ENOMEM);
@ -132,7 +132,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
if (IS_ERR(tzd)) {
devres_free(ptr);
return tzd;
@@ -592,6 +595,46 @@ struct thermal_zone_device *devm_thermal
@@ -593,6 +596,46 @@ struct thermal_zone_device *devm_thermal
EXPORT_SYMBOL_GPL(devm_thermal_of_zone_register);
/**

View File

@ -0,0 +1,331 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "qca955x.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/mtd/partitions/uimage.h>
/ {
compatible = "ruckus,r500", "qca,qca9557";
model = "Ruckus R500";
aliases {
led-boot = &power_green;
led-failsafe = &power_red;
led-running = &power_green;
led-upgrade = &power_red;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&jtag_disable_pins &clks_disable_pins &enable_gpio_4>;
power_green: led-0 {
function = LED_FUNCTION_POWER;
color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
default-state = "on";
};
power_red: led-1 {
function = LED_FUNCTION_POWER;
color = <LED_COLOR_ID_RED>;
gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
default-state = "off";
panic-indicator;
};
// DIR (Zone Director) LED - Indicates Zone director connection status
led-2 {
color = <LED_COLOR_ID_GREEN>;
function = "dir";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
// AIR (Signal/Air Quality) LED - Indicates uplink status and the quality of the wireless signal to the uplink AP
led-3 {
color = <LED_COLOR_ID_GREEN>;
function = "air";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
};
led-4 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN_2GHZ;
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1assoc";
};
led-5 {
color = <LED_COLOR_ID_YELLOW>;
function = LED_FUNCTION_WLAN_2GHZ;
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt";
};
led-6 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN_5GHZ;
gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0assoc";
};
led-7 {
color = <LED_COLOR_ID_YELLOW>;
function = LED_FUNCTION_WLAN_5GHZ;
gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
linux,code = <KEY_RESTART>;
debounce-interval = <60>;
};
};
beamforming-2g-spi {
compatible = "spi-gpio";
mosi-gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
sck-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
num-chipselects = <0>;
#address-cells = <1>;
#size-cells = <0>;
beamforming-2g-gpio@0 {
compatible = "fairchild,74hc595";
reg = <0>;
registers-number = <1>;
spi-max-frequency = <24000000>;
gpio-controller;
#gpio-cells = <2>;
};
};
beamforming-5g-spi {
/*
* ath10k driver doesn't expose GPIOs as of now,
* so let's disable it for now. The shift register
* for antenna pattern control is correctly initialized
* for omnidirectional pattern correctly despite that,
* there is just no possibility to control that from OpenWrt yet.
*/
status = "disabled";
compatible = "spi-gpio";
mosi-gpios = <&ath10k 15 GPIO_ACTIVE_HIGH>;
sck-gpios = <&ath10k 14 GPIO_ACTIVE_HIGH>;
num-chipselects = <0>;
#address-cells = <1>;
#size-cells = <0>;
beamforming-5g-gpio@0 {
compatible = "fairchild,74hc595";
reg = <0>;
registers-number = <1>;
spi-max-frequency = <24000000>;
gpio-controller;
#gpio-cells = <2>;
};
};
i2c: i2c {
compatible = "i2c-gpio";
#address-cells = <1>;
#size-cells = <0>;
scl-gpios = <&gpio 19 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
sda-gpios = <&gpio 20 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
tpm@20 {
compatible = "infineon,slb9645tt", "tcg,tpm-tis-i2c";
reg = <0x20>;
crc-checksum;
};
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
ruckus-himem@fff0000 {
/* Ruckus Himem area used to control
* redundant boot image selection
*/
compatible = "nvmem-rmem";
reg = <0xfff0000 0x10000>;
no-map;
};
};
};
&pinmux {
clks_disable_pins: pinmux_clks_disable_pins {
pinctrl-single,bits = <0x40 0x0 0x80>;
};
enable_gpio_4: pinctrl_enable_gpio_4 {
pinctrl-single,bits = <0x4 0x0 0xff>;
};
};
&spi {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
reg = <0x0000000 0x100000>;
label = "u-boot";
read-only;
};
partition@100000 {
compatible = "u-boot,env";
reg = <0x0100000 0x40000>;
label = "u-boot-env";
};
board_data: partition@140000 {
reg = <0x0140000 0x80000>;
label = "board-data";
read-only;
};
partition@1c0000 {
reg = <0x01c0000 0x3e40000>;
compatible = "openwrt,uimage", "denx,uimage";
label = "firmware";
};
};
};
};
&mdio0 {
status = "okay";
phy0: ethernet-phy@0 {
reg = <0>;
qca,ar8327-initvals = <
0x04 0x00080080 /* PORT0 PAD MODE CTRL */
0x0c 0x07600000 /* PORT6 PAD MODE CTRL */
0x7c 0x0000007e /* PORT0_STATUS */
0x94 0x0000007e /* PORT6 STATUS */
>;
};
};
&eth0 {
status = "okay";
nvmem-cells = <&macaddr_board_data_66>;
nvmem-cell-names = "mac-address";
pll-data = <0x96000000 0x00000101 0x00001616>;
phy-handle = <&phy0>;
};
&eth1 {
status = "okay";
nvmem-cells = <&macaddr_board_data_6c>;
nvmem-cell-names = "mac-address";
pll-data = <0x03000101 0x00000101 0x00001616>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&pcie0 {
status = "okay";
ath10k: wifi@0,0 {
compatible = "pci168c,003c";
reg = <0x0000 0 0 0 0>;
gpio-controller;
#gpio-cells = <2>;
nvmem-cells = <&macaddr_board_data_76>, <&cal_board_data_45000>;
nvmem-cell-names = "mac-address", "calibration";
};
};
&wmac {
status = "okay";
nvmem-cells = <&macaddr_board_data_60>, <&cal_board_data_41000>;
nvmem-cell-names = "mac-address", "calibration";
};
&usb_phy0 {
status = "okay";
};
&usb0 {
status = "okay";
};
&usb_phy1 {
status = "okay";
};
&usb1 {
status = "okay";
};
&board_data {
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
macaddr_board_data_60: macaddr@60 {
reg = <0x60 0x6>;
};
macaddr_board_data_66: macaddr@66 {
reg = <0x66 0x6>;
};
macaddr_board_data_6c: macaddr@6c {
reg = <0x6c 0x6>;
};
macaddr_board_data_76: macaddr@76 {
reg = <0x76 0x6>;
};
cal_board_data_41000: cal@41000 {
reg = <0x41000 0x440>;
};
cal_board_data_45000: cal@45000 {
reg = <0x45000 0x844>;
};
};
};

View File

@ -505,6 +505,10 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0u@eth1" "4:lan:1" "3:lan:2" "2:lan:3" "1:lan:4"
;;
ruckus,r500)
ucidef_add_switch "switch0" \
"6u@eth0" "5:lan:1" "3:lan:2" "0@eth1"
;;
teltonika,rut955|\
teltonika,rut955-h7v3c0)
ucidef_set_interface_wan "eth1"
@ -813,6 +817,7 @@ ath79_setup_macs()
wan_mac=$(mtd_get_mac_binary factory 0x0)
lan_mac=$(macaddr_setbit_la "$wan_mac")
;;
ruckus,r500|\
ruckus,zf7025|\
ruckus,zf7321|\
ruckus,zf7341|\

View File

@ -4,7 +4,7 @@ include $(INCLUDE_DIR)/image.mk
KERNEL_LOADADDR = 0x80060000
DEVICE_VARS += LOADER_FLASH_OFFS LOADER_TYPE
DEVICE_VARS += LOADER_FLASH_MAX LOADER_KERNEL_MAGIC
DEVICE_VARS += LOADER_FLASH_MAX LOADER_KERNEL_MAGIC LZMA_TEXT_START
DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
DEVICE_VARS += RAS_BOARD RAS_ROOTFS_SIZE RAS_VERSION
DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK
@ -14,6 +14,7 @@ define Build/loader-common
$(MAKE) -C lzma-loader \
PKG_BUILD_DIR="$@.src" \
TARGET_DIR="$(dir $@)" LOADER_NAME="$(notdir $@)" \
LZMA_TEXT_START=$(LZMA_TEXT_START) \
$(1) compile loader.$(LOADER_TYPE)
mv "$@.$(LOADER_TYPE)" "$@"
rm -rf $@.src
@ -74,6 +75,7 @@ define Device/Default
LOADER_FLASH_MAX :=
LOADER_FLASH_OFFS :=
LOADER_TYPE :=
LZMA_TEXT_START := 0x81800000
COMPILE :=
IMAGES := sysupgrade.bin
IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(BLOCKSIZE) | \

View File

@ -2945,6 +2945,17 @@ define Device/ruckus_zf7372
endef
TARGET_DEVICES += ruckus_zf7372
define Device/ruckus_r500
$(Device/ruckus_common)
SOC := qca9557
DEVICE_MODEL := R500
IMAGE_SIZE := 63744k
BLOCKSIZE := 256k
DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct \
kmod-i2c-gpio kmod-tpm-i2c-infineon
endef
TARGET_DEVICES += ruckus_r500
define Device/samsung_wam250
SOC := ar9344
DEVICE_VENDOR := Samsung

View File

@ -313,10 +313,9 @@ define Device/meraki_mr18
BLOCKSIZE := 128k
PAGESIZE := 2048
LOADER_TYPE := bin
LZMA_TEXT_START := 0x82800000
KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | meraki-header MR18
# Initramfs-build fails due to size issues
# KERNEL_INITRAMFS := $$(KERNEL)
KERNEL_INITRAMFS :=
KERNEL_INITRAMFS := $$(KERNEL)
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
SUPPORTED_DEVICES += mr18
endef
@ -442,6 +441,10 @@ define Device/zte_mf28x_common
DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct
BLOCKSIZE := 128k
PAGESIZE := 2048
LOADER_TYPE := bin
LZMA_TEXT_START := 0x82800000
KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | uImage none
KERNEL_INITRAMFS := $$(KERNEL)
KERNEL_SIZE := 4096k
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
endef

View File

@ -1189,7 +1189,7 @@ Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -5710,7 +5710,7 @@ static void port_event(struct usb_hub *h
@@ -5712,7 +5712,7 @@ static void port_event(struct usb_hub *h
port_dev->over_current_count++;
port_over_current_notify(port_dev);

View File

@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -4872,6 +4872,7 @@ static const struct {
@@ -4873,6 +4873,7 @@ static const struct {
*/
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;
bool invalid_bdaddr;
size_t i;
@@ -4900,7 +4901,8 @@ static int hci_dev_setup_sync(struct hci
@@ -4901,7 +4902,8 @@ static int hci_dev_setup_sync(struct hci
test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
if (!ret) {
if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&

View File

@ -333,7 +333,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
/* Global Debug LSP MUX Select */
#define DWC3_GDBGLSPMUX_ENDBC BIT(15) /* Host only */
#define DWC3_GDBGLSPMUX_HOSTSELECT(n) ((n) & 0x3fff)
@@ -1066,6 +1069,7 @@ struct dwc3_scratchpad_array {
@@ -1067,6 +1070,7 @@ struct dwc3_scratchpad_array {
* @tx_max_burst_prd: max periodic ESS transmit burst size
* @tx_fifo_resize_max_num: max number of fifos allocated during txfifo resize
* @clear_stall_protocol: endpoint number that requires a delayed status phase
@ -341,7 +341,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
* @hsphy_interface: "utmi" or "ulpi"
* @connected: true when we're connected to a host, false otherwise
* @softconnect: true when gadget connect is called, false when disconnect runs
@@ -1303,6 +1307,7 @@ struct dwc3 {
@@ -1304,6 +1308,7 @@ struct dwc3 {
u8 tx_max_burst_prd;
u8 tx_fifo_resize_max_num;
u8 clear_stall_protocol;

View File

@ -45,7 +45,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
#define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST BIT(10)
/* Global Status Register */
@@ -1121,10 +1122,12 @@ struct dwc3_scratchpad_array {
@@ -1122,10 +1123,12 @@ struct dwc3_scratchpad_array {
* generation after resume from suspend.
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
* VBUS with an external supply.
@ -62,7 +62,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
* @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
* @tx_de_emphasis: Tx de-emphasis value
* 0 - -6dB de-emphasis
@@ -1351,6 +1354,7 @@ struct dwc3 {
@@ -1352,6 +1355,7 @@ struct dwc3 {
unsigned ulpi_ext_vbus_drv:1;
unsigned parkmode_disable_ss_quirk:1;
unsigned parkmode_disable_hs_quirk:1;

View File

@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -4872,7 +4872,8 @@ static const struct {
@@ -4873,7 +4873,8 @@ static const struct {
*/
static int hci_dev_setup_sync(struct hci_dev *hdev)
{

View File

@ -57,7 +57,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
#define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
#define DWC3_GUCTL1_PARKMODE_DISABLE_HS BIT(16)
#define DWC3_GUCTL1_PARKMODE_DISABLE_FSLS BIT(15)
@@ -1122,6 +1124,8 @@ struct dwc3_scratchpad_array {
@@ -1123,6 +1125,8 @@ struct dwc3_scratchpad_array {
* generation after resume from suspend.
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
* VBUS with an external supply.
@ -66,7 +66,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
* @parkmode_disable_ss_quirk: If set, disable park mode feature for all
* Superspeed instances.
* @parkmode_disable_hs_quirk: If set, disable park mode feature for all
@@ -1352,6 +1356,8 @@ struct dwc3 {
@@ -1353,6 +1357,8 @@ struct dwc3 {
unsigned dis_tx_ipgap_linecheck_quirk:1;
unsigned resume_hs_terminations:1;
unsigned ulpi_ext_vbus_drv:1;

View File

@ -14,7 +14,7 @@ Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -2682,7 +2682,7 @@ int nf_conntrack_init_start(void)
@@ -2685,7 +2685,7 @@ int nf_conntrack_init_start(void)
if (!nf_conntrack_htable_size) {
nf_conntrack_htable_size

View File

@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -8421,7 +8421,7 @@ static int nft_register_flowtable_net_ho
@@ -8425,7 +8425,7 @@ static int nft_register_flowtable_net_ho
err = flowtable->data.type->setup(&flowtable->data,
hook->ops.dev,
FLOW_BLOCK_BIND);

View File

@ -0,0 +1,104 @@
From: Felix Fietkau <nbd@nbd.name>
Subject: [PATCH net-next 3/4] net: ethernet: mtk_eth_soc: reduce rx ring size for older chipsets
Date: Tue, 15 Oct 2024 13:09:37 +0200
Commit c57e55819443 ("net: ethernet: mtk_eth_soc: handle dma buffer
size soc specific") resolved some tx timeout issues by bumping FQ and
tx ring sizes from 512 to 2048 entries (the value used in the MediaTek
SDK), however it also changed the rx ring size for all chipsets in the
same way.
Based on a few tests, it seems that a symmetric rx/tx ring size of 2048
really only makes sense on MT7988, which is capable of 10G ethernet links.
Older chipsets are typically deployed in systems that are more memory
constrained and don't actually need the larger rings to handle received
packets.
In order to reduce wasted memory set the ring size based on the SoC to
the following values:
- 2048 on MT7988
- 1024 on MT7986
- 512 (previous value) on everything else, except:
- 256 on RT5350 (the oldest supported chipset)
Fixes: c57e55819443 ("net: ethernet: mtk_eth_soc: handle dma buffer size soc specific")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -5381,7 +5381,7 @@ static const struct mtk_soc_data mt2701_
.desc_size = sizeof(struct mtk_rx_dma),
.irq_done_mask = MTK_RX_DONE_INT,
.dma_l4_valid = RX_DMA_L4_VALID,
- .dma_size = MTK_DMA_SIZE(2K),
+ .dma_size = MTK_DMA_SIZE(512),
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
@@ -5409,7 +5409,7 @@ static const struct mtk_soc_data mt7621_
.desc_size = sizeof(struct mtk_rx_dma),
.irq_done_mask = MTK_RX_DONE_INT,
.dma_l4_valid = RX_DMA_L4_VALID,
- .dma_size = MTK_DMA_SIZE(2K),
+ .dma_size = MTK_DMA_SIZE(512),
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
@@ -5439,7 +5439,7 @@ static const struct mtk_soc_data mt7622_
.desc_size = sizeof(struct mtk_rx_dma),
.irq_done_mask = MTK_RX_DONE_INT,
.dma_l4_valid = RX_DMA_L4_VALID,
- .dma_size = MTK_DMA_SIZE(2K),
+ .dma_size = MTK_DMA_SIZE(512),
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
@@ -5468,7 +5468,7 @@ static const struct mtk_soc_data mt7623_
.desc_size = sizeof(struct mtk_rx_dma),
.irq_done_mask = MTK_RX_DONE_INT,
.dma_l4_valid = RX_DMA_L4_VALID,
- .dma_size = MTK_DMA_SIZE(2K),
+ .dma_size = MTK_DMA_SIZE(512),
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
@@ -5494,7 +5494,7 @@ static const struct mtk_soc_data mt7629_
.desc_size = sizeof(struct mtk_rx_dma),
.irq_done_mask = MTK_RX_DONE_INT,
.dma_l4_valid = RX_DMA_L4_VALID,
- .dma_size = MTK_DMA_SIZE(2K),
+ .dma_size = MTK_DMA_SIZE(512),
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
@@ -5526,7 +5526,7 @@ static const struct mtk_soc_data mt7981_
.dma_l4_valid = RX_DMA_L4_VALID_V2,
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
- .dma_size = MTK_DMA_SIZE(2K),
+ .dma_size = MTK_DMA_SIZE(512),
},
};
@@ -5556,7 +5556,7 @@ static const struct mtk_soc_data mt7986_
.dma_l4_valid = RX_DMA_L4_VALID_V2,
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
- .dma_size = MTK_DMA_SIZE(2K),
+ .dma_size = MTK_DMA_SIZE(1K),
},
};
@@ -5609,7 +5609,7 @@ static const struct mtk_soc_data rt5350_
.dma_l4_valid = RX_DMA_L4_VALID_PDMA,
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
- .dma_size = MTK_DMA_SIZE(2K),
+ .dma_size = MTK_DMA_SIZE(256),
},
};

View File

@ -0,0 +1,43 @@
From: Danila Romanov <pervokur@gmail.com>
Date: Wed, 22 Jan 2025 06:48:45 +0100
Subject: [PATCH] net: ethernet: mtk_eth_soc: do not enable page pool stats by
default
There is no reason for it to be enabled by default.
Align mtk_eth_soc driver to mt76 driver.
This option incurs additional CPU cost in allocation and recycle paths
and additional memory cost to store the statistics.
Signed-off-by: Danila Romanov <pervokur@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/drivers/net/ethernet/mediatek/Kconfig
+++ b/drivers/net/ethernet/mediatek/Kconfig
@@ -18,7 +18,6 @@ config NET_MEDIATEK_SOC
select PHYLINK
select DIMLIB
select PAGE_POOL
- select PAGE_POOL_STATS
select PCS_MTK_LYNXI
select REGMAP_MMIO
help
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -4552,6 +4552,7 @@ static int mtk_get_sset_count(struct net
static void mtk_ethtool_pp_stats(struct mtk_eth *eth, u64 *data)
{
+#ifdef CONFIG_PAGE_POOL_STATS
struct page_pool_stats stats = {};
int i;
@@ -4564,6 +4565,7 @@ static void mtk_ethtool_pp_stats(struct
page_pool_get_stats(ring->page_pool, &stats);
}
page_pool_ethtool_stats_get(data, &stats);
+#endif
}
static void mtk_get_ethtool_stats(struct net_device *dev,

View File

@ -0,0 +1,70 @@
From e3da313ebcace17f1227566fe1b0d0c3883061f9 Mon Sep 17 00:00:00 2001
From: Manuel Fombuena <fombuena@outlook.com>
Date: Fri, 17 Jan 2025 12:31:49 +0000
Subject: [PATCH 1/5] leds: leds-st1202: fix NULL pointer access on race
condition
st1202_dt_init() calls devm_led_classdev_register_ext() before the
internal data structures are properly setup, so the leds become visible
to user space while being partially initialized, leading to a window
where trying to access them causes a NULL pointer access.
This change moves devm_led_classdev_register_ext() to the last thing to
happen during initialization to eliminate it.
Signed-off-by: Manuel Fombuena <fombuena@outlook.com>
---
drivers/leds/leds-st1202.c | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
--- a/drivers/leds/leds-st1202.c
+++ b/drivers/leds/leds-st1202.c
@@ -261,8 +261,6 @@ static int st1202_dt_init(struct st1202_
int err, reg;
for_each_available_child_of_node_scoped(dev_of_node(dev), child) {
- struct led_init_data init_data = {};
-
err = of_property_read_u32(child, "reg", &reg);
if (err)
return dev_err_probe(dev, err, "Invalid register\n");
@@ -276,15 +274,6 @@ static int st1202_dt_init(struct st1202_
led->led_cdev.pattern_set = st1202_led_pattern_set;
led->led_cdev.pattern_clear = st1202_led_pattern_clear;
led->led_cdev.default_trigger = "pattern";
-
- init_data.fwnode = led->fwnode;
- init_data.devicename = "st1202";
- init_data.default_label = ":";
-
- err = devm_led_classdev_register_ext(dev, &led->led_cdev, &init_data);
- if (err < 0)
- return dev_err_probe(dev, err, "Failed to register LED class device\n");
-
led->led_cdev.brightness_set = st1202_brightness_set;
led->led_cdev.brightness_get = st1202_brightness_get;
}
@@ -368,6 +357,7 @@ static int st1202_probe(struct i2c_clien
return ret;
for (int i = 0; i < ST1202_MAX_LEDS; i++) {
+ struct led_init_data init_data = {};
led = &chip->leds[i];
led->chip = chip;
led->led_num = i;
@@ -384,6 +374,15 @@ static int st1202_probe(struct i2c_clien
if (ret < 0)
return dev_err_probe(&client->dev, ret,
"Failed to clear LED pattern\n");
+
+ init_data.fwnode = led->fwnode;
+ init_data.devicename = "st1202";
+ init_data.default_label = ":";
+
+ ret = devm_led_classdev_register_ext(&client->dev, &led->led_cdev, &init_data);
+ if (ret < 0)
+ return dev_err_probe(&client->dev, ret,
+ "Failed to register LED class device\n");
}
return 0;

View File

@ -125,6 +125,7 @@ lantiq_setup_macs()
tffsdev=$(find_mtd_chardev "nand-tffs")
lan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n maca -o)
wan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n macdsl -o)
label_mac=$lan_mac
;;
bt,homehub-v5a)
lan_mac=$(mtd_get_mac_binary_ubi caldata 0x110c)
@ -142,6 +143,7 @@ lantiq_setup_macs()
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" "$lan_mac"
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" "$wan_mac"
[ -n "$label_mac" ] && ucidef_set_label_macaddr "$label_mac"
}
board_config_update

View File

@ -19,11 +19,14 @@ case "$FIRMWARE" in
avm,fritz3390)
caldata_extract_reverse "urlader" 0x2546 0x440
;;
avm,fritz7412|\
avm,fritz7430)
avm,fritz7412)
/usr/bin/fritz_cal_extract -i 1 -s 0x1e000 -e 0x207 -l 5120 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader") || \
/usr/bin/fritz_cal_extract -i 1 -s 0x1e800 -e 0x207 -l 5120 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader")
;;
avm,fritz7430)
/usr/bin/fritz_cal_extract -r -i 4 -s 0x1e000 -e 0x207 -l 5120 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader") || \
/usr/bin/fritz_cal_extract -r -i 4 -s 0x1e800 -e 0x207 -l 5120 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader")
;;
bt,homehub-v5a)
caldata_extract_ubi "caldata" 0x1000 0x1000
ath9k_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary_ubi caldata 0x110c) 2) 0x10c

View File

@ -5,6 +5,24 @@ START=99
boot() {
case $(board_name) in
xiaomi,mi-router-ax3000t)
. /lib/upgrade/common.sh
[ "$(rootfs_type)" = "tmpfs" ] && \
logger "bootcount: initramfs mode detected, exit" && \
return 0
[ "$(fw_printenv -n flag_try_sys2_failed 2>&1)" = "8" ] && \
logger "bootcount: rd03 model detected, exit" && \
return 0
fw_setenv -s - <<-EOF
flag_boot_rootfs 0
flag_boot_success 1
flag_last_success 0
flag_ota_reboot 0
flag_try_sys1_failed 0
flag_try_sys2_failed 0
EOF
logger "bootcount: rd23 model detected, nvram was updated"
;;
zyxel,ex5700-telenor)
fw_setenv uboot_bootcount 0
;;

View File

@ -40,13 +40,15 @@ xiaomi_initial_setup()
return 0
fi
fw_setenv boot_wait on
fw_setenv uart_en 1
fw_setenv flag_boot_rootfs 0
fw_setenv flag_last_success 1
fw_setenv flag_boot_success 1
fw_setenv flag_try_sys1_failed 8
fw_setenv flag_try_sys2_failed 8
fw_setenv -s - <<-EOF
boot_wait on
uart_en 1
flag_boot_rootfs 0
flag_last_success 1
flag_boot_success 1
flag_try_sys1_failed 8
flag_try_sys2_failed 8
EOF
local board=$(board_name)
case "$board" in

View File

@ -1967,6 +1967,10 @@ TARGET_DEVICES += zbtlink_zbt-z8103ax
define Device/zyxel_ex5601-t0-stock
DEVICE_VENDOR := Zyxel
DEVICE_MODEL := EX5601-T0
DEVICE_ALT0_VENDOR := Zyxel
DEVICE_ALT0_MODEL := EX5601-T1
DEVICE_ALT1_VENDOR := Zyxel
DEVICE_ALT1_MODEL := T-56
DEVICE_VARIANT := (stock layout)
DEVICE_DTS := mt7986a-zyxel-ex5601-t0-stock
DEVICE_DTS_DIR := ../dts
@ -1990,6 +1994,10 @@ TARGET_DEVICES += zyxel_ex5601-t0-stock
define Device/zyxel_ex5601-t0-ubootmod
DEVICE_VENDOR := Zyxel
DEVICE_MODEL := EX5601-T0
DEVICE_ALT0_VENDOR := Zyxel
DEVICE_ALT0_MODEL := EX5601-T1
DEVICE_ALT1_VENDOR := Zyxel
DEVICE_ALT1_MODEL := T-56
DEVICE_VARIANT := (OpenWrt U-Boot layout)
DEVICE_DTS := mt7986a-zyxel-ex5601-t0-ubootmod
DEVICE_DTS_DIR := ../dts

View File

@ -1,70 +0,0 @@
From patchwork Sun Dec 15 22:09:41 2024
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org>
X-Patchwork-Id: 13908995
Return-Path:
<linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org>
Date: Sun, 15 Dec 2024 22:09:41 +0000
From: Daniel Golle <daniel@makrotopia.org>
To: Chun-Kuang Hu <chunkuang.hu@kernel.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>,
Justin Green <greenjustin@chromium.org>,
Frank Wunderlich <frank-w@public-files.de>,
John Crispin <john@phrozen.org>, dri-devel@lists.freedesktop.org,
linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, stable@vger.kernel.org
Subject: [PATCH] drm/mediatek: only touch DISP_REG_OVL_PITCH_MSB if AFBC is
supported
Message-ID:
<8c001c8e70d93d64d3ee6bf7dc5078d2783d4e32.1734300345.git.daniel@makrotopia.org>
MIME-Version: 1.0
Content-Disposition: inline
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
X-CRM114-CacheID: sfid-20241215_140959_910539_20C140B3
X-CRM114-Status: UNSURE ( 9.48 )
X-CRM114-Notice: Please train this message.
X-BeenThere: linux-mediatek@lists.infradead.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: <linux-mediatek.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
List-Post: <mailto:linux-mediatek@lists.infradead.org>
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
Errors-To:
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
Touching DISP_REG_OVL_PITCH_MSB leads to video overlay on MT2701, MT7623N
and probably other older SoCs being broken.
Only touching it on hardware which actually supports AFBC like it was
before commit c410fa9b07c3 ("drm/mediatek: Add AFBC support to Mediatek
DRM driver") fixes it.
Fixes: c410fa9b07c3 ("drm/mediatek: Add AFBC support to Mediatek DRM driver")
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
+++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
@@ -478,7 +478,7 @@ void mtk_ovl_layer_config(struct device
&ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_PITCH_MSB(idx));
mtk_ddp_write_relaxed(cmdq_pkt, hdr_pitch, &ovl->cmdq_reg, ovl->regs,
DISP_REG_OVL_HDR_PITCH(ovl, idx));
- } else {
+ } else if (ovl->data->supports_afbc) {
mtk_ddp_write_relaxed(cmdq_pkt,
overlay_pitch.split_pitch.msb,
&ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_PITCH_MSB(idx));

View File

@ -1816,11 +1816,10 @@ define Device/keenetic_kn-1910
$(Device/uimage-lzma-loader)
BLOCKSIZE := 128k
PAGESIZE := 2048
IMAGE_SIZE := 24903680
IMAGE_SIZE := 20368588
DEVICE_VENDOR := Keenetic
DEVICE_MODEL := KN-1910
DEVICE_PACKAGES := kmod-mt7615-firmware kmod-usb3 \
kmod-usb-ledtrig-usbport automount
DEVICE_PACKAGES := kmod-mt7615-firmware kmod-usb3 automount
IMAGES += factory.bin
IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | \
append-ubi | check-size | zyimage -d 0x801910 -v "KN-1910"

View File

@ -369,7 +369,7 @@ TARGET_DEVICES += keenetic_kn-1613
define Device/keenetic_kn-1711
BLOCKSIZE := 64k
IMAGE_SIZE := 13434880
IMAGE_SIZE := 10551296
DEVICE_VENDOR := Keenetic
DEVICE_MODEL := KN-1711
DEVICE_PACKAGES := kmod-mt7615e kmod-mt7663-firmware-ap kmod-usb2
@ -381,7 +381,7 @@ TARGET_DEVICES += keenetic_kn-1711
define Device/keenetic_kn-1713
BLOCKSIZE := 64k
IMAGE_SIZE := 13434880
IMAGE_SIZE := 10551296
DEVICE_VENDOR := Keenetic
DEVICE_MODEL := KN-1713
DEVICE_PACKAGES := kmod-mt7615e kmod-mt7663-firmware-ap kmod-usb2

View File

@ -54,6 +54,9 @@ tplink,t1600g-28ts-v3)
label_mac=$(get_mac_label)
lan_mac="$label_mac"
;;
xikestor,sks8300-8x)
lan_mac=$(mtd_get_mac_binary board-info 0x1f1)
;;
*)
lan_mac=$(mtd_get_mac_ascii u-boot-env2 mac_start)
lan_mac_end=$(mtd_get_mac_ascii u-boot-env2 mac_end)

View File

@ -0,0 +1,434 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "rtl930x.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
/ {
compatible = "xikestor,sks8300-8x", "realtek,rtl930x-soc";
model = "XikeStor SKS8300-8X";
memory@0 {
device_type = "memory";
reg = <0x00000000 0x10000000>, /* first 256 MiB */
<0x20000000 0x10000000>; /* remaining 256 MiB */
};
aliases {
led-boot = &led_sys;
led-failsafe = &led_sys;
led-running = &led_sys;
led-upgrade = &led_sys;
};
chosen {
stdout-path = "serial0:9600n8";
};
i2c_master: i2c@1b00036c {
compatible = "realtek,rtl9300-i2c";
reg = <0x1b00036c 0x3c>;
#address-cells = <1>;
#size-cells = <0>;
scl-pin = <8>;
sda-pin = <9>;
clock-frequency = <100000>;
};
i2c-mux {
compatible = "realtek,i2c-mux-rtl9300";
i2c-parent = <&i2c_master>;
#address-cells = <1>;
#size-cells = <0>;
i2c0: i2c@0 {
reg = <0>;
scl-pin = <8>;
sda-pin = <9>;
};
i2c1: i2c@1 {
reg = <1>;
scl-pin = <8>;
sda-pin = <10>;
};
i2c2: i2c@2 {
reg = <2>;
scl-pin = <8>;
sda-pin = <11>;
};
i2c3: i2c@3 {
reg = <3>;
scl-pin = <8>;
sda-pin = <12>;
};
i2c4: i2c@4 {
reg = <4>;
scl-pin = <8>;
sda-pin = <13>;
};
i2c5: i2c@5 {
reg = <5>;
scl-pin = <8>;
sda-pin = <14>;
};
i2c6: i2c@6 {
reg = <6>;
scl-pin = <8>;
sda-pin = <15>;
};
i2c7: i2c@7 {
reg = <7>;
scl-pin = <8>;
sda-pin = <16>;
};
};
keys {
compatible = "gpio-keys";
button-reset {
label = "reset";
gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
leds {
compatible = "gpio-leds";
led_sys: led-0 {
gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_STATUS;
};
};
led_set {
compatible = "realtek,rtl9300-leds";
active-low;
/*
* LED set 0
*
* - LED[0](Green): 10G/LINK/ACT
* - LED[1](Amber): 10M/100M/1G/2.5G/5G/LINK/ACT
*/
led_set0 = <0x0baa 0x0a01>;
};
sfp0: sfp-p1 {
compatible = "sff,sfp";
i2c-bus = <&i2c0>;
los-gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
mod-def0-gpio = <&gpio1 1 GPIO_ACTIVE_LOW>;
tx-disable-gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <2900>;
};
sfp1: sfp-p2 {
compatible = "sff,sfp";
i2c-bus = <&i2c1>;
los-gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>;
mod-def0-gpio = <&gpio1 4 GPIO_ACTIVE_LOW>;
tx-disable-gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <1500>;
};
sfp2: sfp-p3 {
compatible = "sff,sfp";
i2c-bus = <&i2c2>;
los-gpio = <&gpio1 6 GPIO_ACTIVE_HIGH>;
mod-def0-gpio = <&gpio1 7 GPIO_ACTIVE_LOW>;
tx-disable-gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <1500>;
};
sfp3: sfp-p4 {
compatible = "sff,sfp";
i2c-bus = <&i2c3>;
los-gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
mod-def0-gpio = <&gpio1 10 GPIO_ACTIVE_LOW>;
tx-disable-gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <2000>;
};
sfp4: sfp-p5 {
compatible = "sff,sfp";
i2c-bus = <&i2c4>;
los-gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
mod-def0-gpio = <&gpio1 13 GPIO_ACTIVE_LOW>;
tx-disable-gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <2000>;
};
sfp5: sfp-p6 {
compatible = "sff,sfp";
i2c-bus = <&i2c5>;
los-gpio = <&gpio1 21 GPIO_ACTIVE_HIGH>;
mod-def0-gpio = <&gpio1 22 GPIO_ACTIVE_LOW>;
tx-disable-gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <1500>;
};
sfp6: sfp-p7 {
compatible = "sff,sfp";
i2c-bus = <&i2c6>;
los-gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>;
mod-def0-gpio = <&gpio1 25 GPIO_ACTIVE_LOW>;
tx-disable-gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <1500>;
};
sfp7: sfp-p8 {
compatible = "sff,sfp";
i2c-bus = <&i2c7>;
los-gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;
mod-def0-gpio = <&gpio1 28 GPIO_ACTIVE_LOW>;
tx-disable-gpio = <&gpio1 29 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <2900>;
};
};
&mdio_aux {
status = "okay";
gpio1: gpio@0 {
compatible = "realtek,rtl8231";
reg = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&gpio1 0 0 37>;
led-controller {
compatible = "realtek,rtl8231-leds";
status = "disabled";
};
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <10000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x100000>;
read-only;
};
/* "flash_raw" on stock */
partition@100000 {
label = "board-info";
reg = <0x100000 0x30000>;
read-only;
};
partition@130000 {
label = "syslog";
reg = <0x130000 0xd0000>;
read-only;
};
/* "flash_user" on stock */
partition@200000 {
compatible = "fixed-partitions";
label = "firmware";
reg = <0x200000 0x1e00000>;
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "kernel";
reg = <0x0 0x800000>;
};
partition@800000 {
label = "rootfs";
reg = <0x800000 0x1600000>;
};
};
};
};
};
&ethernet0 {
mdio: mdio-bus {
compatible = "realtek,rtl838x-mdio";
regmap = <&ethernet0>;
#address-cells = <1>;
#size-cells = <0>;
phy0: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
phy-is-integrated;
reg = <0>;
sds = <2>;
};
phy8: ethernet-phy@8 {
compatible = "ethernet-phy-ieee802.3-c22";
phy-is-integrated;
reg = <8>;
sds = <3>;
};
phy16: ethernet-phy@10 {
compatible = "ethernet-phy-ieee802.3-c22";
phy-is-integrated;
reg = <16>;
sds = <4>;
};
phy20: ethernet-phy@14 {
compatible = "ethernet-phy-ieee802.3-c22";
phy-is-integrated;
reg = <20>;
sds = <5>;
};
phy24: ethernet-phy@18 {
compatible = "ethernet-phy-ieee802.3-c22";
phy-is-integrated;
reg = <24>;
sds = <6>;
};
phy25: ethernet-phy@19 {
compatible = "ethernet-phy-ieee802.3-c22";
phy-is-integrated;
reg = <25>;
sds = <7>;
};
phy26: ethernet-phy@1a {
compatible = "ethernet-phy-ieee802.3-c22";
phy-is-integrated;
reg = <26>;
sds = <8>;
};
phy27: ethernet-phy@1b {
compatible = "ethernet-phy-ieee802.3-c22";
phy-is-integrated;
reg = <27>;
sds = <9>;
};
};
};
&switch0 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
label = "lan1";
phy-handle = <&phy0>;
phy-mode = "10gbase-r";
sfp = <&sfp0>;
managed = "in-band-status";
led-set = <0>;
};
port@8 {
reg = <8>;
label = "lan2";
phy-handle = <&phy8>;
phy-mode = "10gbase-r";
sfp = <&sfp1>;
managed = "in-band-status";
led-set = <0>;
};
port@10 {
reg = <16>;
label = "lan3";
phy-handle = <&phy16>;
phy-mode = "10gbase-r";
sfp = <&sfp2>;
managed = "in-band-status";
led-set = <0>;
};
port@14 {
reg = <20>;
label = "lan4";
phy-handle = <&phy20>;
phy-mode = "10gbase-r";
sfp = <&sfp3>;
managed = "in-band-status";
led-set = <0>;
};
port@18 {
reg = <24>;
label = "lan5";
phy-handle = <&phy24>;
phy-mode = "10gbase-r";
sfp = <&sfp4>;
managed = "in-band-status";
led-set = <0>;
};
port@19 {
reg = <25>;
label = "lan6";
phy-handle = <&phy25>;
phy-mode = "10gbase-r";
sfp = <&sfp5>;
managed = "in-band-status";
led-set = <0>;
};
port@1a {
reg = <26>;
label = "lan7";
phy-handle = <&phy26>;
phy-mode = "10gbase-r";
sfp = <&sfp6>;
managed = "in-band-status";
led-set = <0>;
};
port@1b {
reg = <27>;
label = "lan8";
phy-handle = <&phy27>;
phy-mode = "10gbase-r";
sfp = <&sfp7>;
managed = "in-band-status";
led-set = <0>;
};
port@1c {
ethernet = <&ethernet0>;
reg = <28>;
phy-mode = "internal";
fixed-link {
speed = <10000>;
full-duplex;
};
};
};
};

View File

@ -143,6 +143,35 @@
};
switchcore@1b000000 {
compatible = "syscon", "simple-mfd";
reg = <0x1b000000 0x10000>;
mdio_aux: mdio-aux {
compatible = "realtek,rtl9300-aux-mdio";
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&pinmux_gpio_mdio_en>;
pinctrl-names = "default";
status = "disabled";
};
};
pinmux@1b00c600 {
compatible = "pinctrl-single";
reg = <0x1b00c600 0x4>;
pinctrl-single,bit-per-mux;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0x1>;
#pinctrl-cells = <2>;
pinmux_gpio_mdio_en: gpio-mdio-en {
pinctrl-single,bits = <0x0 0x100 0x100>;
};
};
pinmux_led: pinmux@1b00cc00 {
compatible = "pinctrl-single";
reg = <0x1b00cc00 0x4>;

View File

@ -686,6 +686,7 @@ static void rtl83xx_phylink_get_caps(struct dsa_switch *ds, int port,
__set_bit(PHY_INTERFACE_MODE_XGMII, config->supported_interfaces);
__set_bit(PHY_INTERFACE_MODE_USXGMII, config->supported_interfaces);
__set_bit(PHY_INTERFACE_MODE_1000BASEX, config->supported_interfaces);
__set_bit(PHY_INTERFACE_MODE_10GBASER, config->supported_interfaces);
}
static void rtl83xx_phylink_mac_config(struct dsa_switch *ds, int port,

View File

@ -1690,7 +1690,7 @@ static int rtl9300_read_status(struct phy_device *phydev)
if (of_property_read_u32(dn, "sds", &sds_num))
sds_num = -1;
pr_info("%s: Port %d, SerDes is %d\n", __func__, phy_addr, sds_num);
pr_debug("%s: Port %d, SerDes is %d\n", __func__, phy_addr, sds_num);
} else {
dev_err(dev, "No DT node.\n");
return -EINVAL;
@ -1700,7 +1700,7 @@ static int rtl9300_read_status(struct phy_device *phydev)
return 0;
mode = rtl9300_sds_mode_get(sds_num);
pr_info("%s got SDS mode %02x\n", __func__, mode);
pr_debug("%s got SDS mode %02x\n", __func__, mode);
if (mode == RTL930X_SDS_OFF)
mode = rtl9300_sds_field_r(sds_num, 0x1f, 9, 11, 7);
if (mode == RTL930X_SDS_MODE_10GBASER) { /* 10GR mode */
@ -1715,7 +1715,7 @@ static int rtl9300_read_status(struct phy_device *phydev)
latch_status |= rtl9300_sds_field_r(sds_num, 0x1, 30, 8, 0);
}
pr_info("%s link status: status: %d, latch %d\n", __func__, status, latch_status);
pr_debug("%s link status: status: %d, latch %d\n", __func__, status, latch_status);
if (latch_status) {
phydev->link = true;

View File

@ -1,5 +1,23 @@
# SPDX-License-Identifier: GPL-2.0-only
define Build/xikestor-nosimg
$(STAGING_DIR_HOST)/bin/nosimg-enc -i $@ -o $@.new
mv $@.new $@
endef
define Device/xikestor_sks8300-8x
SOC := rtl9303
DEVICE_VENDOR := XikeStor
DEVICE_MODEL := SKS8300-8X
BLOCKSIZE := 64k
KERNEL_SIZE := 8192k
IMAGE_SIZE := 30720k
IMAGE/sysupgrade.bin := pad-extra 256 | append-kernel | xikestor-nosimg | \
jffs2 nos.img -e 4KiB -x lzma | pad-to $$$$(KERNEL_SIZE) | \
append-rootfs | pad-rootfs | append-metadata | check-size
endef
TARGET_DEVICES += xikestor_sks8300-8x
define Device/zyxel_xgs1250-12
SOC := rtl9302
UIMAGE_MAGIC := 0x93001250

View File

@ -85,6 +85,7 @@ CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HIGHMEM=y
CONFIG_HWMON=y
CONFIG_HZ_PERIODIC=y
CONFIG_I2C=y
@ -104,6 +105,7 @@ CONFIG_IRQ_MIPS_CPU=y
CONFIG_IRQ_WORK=y
CONFIG_JFFS2_ZLIB=y
CONFIG_LEDS_GPIO=y
# CONFIG_LEDS_RTL8231 is not set
CONFIG_LIBFDT=y
CONFIG_LOCK_DEBUGGING_SUPPORT=y
CONFIG_MACH_REALTEK_RTL=y
@ -112,9 +114,9 @@ CONFIG_MDIO_BUS=y
CONFIG_MDIO_DEVICE=y
CONFIG_MDIO_DEVRES=y
CONFIG_MDIO_I2C=y
# CONFIG_MDIO_REALTEK_OTTO_AUX is not set
CONFIG_MDIO_REALTEK_OTTO_AUX=y
CONFIG_MDIO_SMBUS=y
# CONFIG_MFD_RTL8231 is not set
CONFIG_MFD_RTL8231=y
CONFIG_MFD_SYSCON=y
CONFIG_MIGRATION=y
CONFIG_MIPS=y
@ -175,6 +177,7 @@ CONFIG_PHYLIB=y
CONFIG_PHYLIB_LEDS=y
CONFIG_PHYLINK=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_RTL8231=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_POWER_RESET_SYSCON=y
@ -188,6 +191,7 @@ CONFIG_REALTEK_PHY=y
CONFIG_REALTEK_SOC_PHY=y
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP_MDIO=y
CONFIG_REGMAP_MMIO=y
CONFIG_RESET_CONTROLLER=y
# CONFIG_RTL838X is not set

View File

@ -71,7 +71,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -1002,6 +1002,8 @@ struct dwc3_scratchpad_array {
@@ -1003,6 +1003,8 @@ struct dwc3_scratchpad_array {
* @bus_clk: clock for accessing the registers
* @ref_clk: reference clock
* @susp_clk: clock used when the SS phy is in low power (S3) state
@ -80,7 +80,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* @reset: reset control
* @regs: base address for our registers
* @regs_size: address space size
@@ -1174,6 +1176,8 @@ struct dwc3 {
@@ -1175,6 +1177,8 @@ struct dwc3 {
struct clk *bus_clk;
struct clk *ref_clk;
struct clk *susp_clk;

View File

@ -25,7 +25,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+ uart->probe = up->probe;
if (uart->port.type != PORT_8250_CIR) {
if (serial8250_isa_config != NULL)
if (uart_console_registered(&uart->port))
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -612,6 +612,9 @@ static int dw8250_probe(struct platform_

View File

@ -11,9 +11,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware-utils.git
PKG_SOURCE_DATE:=2024-10-20
PKG_SOURCE_VERSION:=4b7638925d3eac03e614e40bc30cb49f5877c46d
PKG_MIRROR_HASH:=ea0e30f2b20211e4153704019ebb3f8789269893a4af6d853a85fae7c091802c
PKG_SOURCE_DATE:=2025-01-14
PKG_SOURCE_VERSION:=12c0b42231bee58b3cd7cbe95c33de2685484a4f
PKG_MIRROR_HASH:=50d872a5069f9f672de5ea9efcf00872bcce27ec52bbb69fff3785abcee1c77c
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/cmake.mk