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

View File

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

View File

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

View File

@ -1649,3 +1649,21 @@ define KernelPackage/qrtr-mhi/description
endef endef
$(eval $(call KernelPackage,qrtr-mhi)) $(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 --- a/drivers/bus/mhi/host/trace.h
+++ b/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( 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); + __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
__entry->ch_num = mhi_chan->chan; __entry->ch_num = mhi_chan->chan;
__entry->wp = mhi_tre; __entry->wp = mhi_tre;
__entry->tre_ptr = le64_to_cpu(mhi_tre->ptr); __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( 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); + __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
__entry->local_ee = mhi_cntrl->ee; __entry->local_ee = mhi_cntrl->ee;
__entry->state = mhi_cntrl->dev_state; __entry->state = mhi_cntrl->dev_state;
__entry->dev_ee = dev_ee; __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( 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); + __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
if (pm_state) if (pm_state)
pm_state = __fls(pm_state); pm_state = __fls(pm_state);
__entry->pm_state = 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( 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); + __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
__entry->rp = rp; __entry->rp = rp;
__entry->ptr = le64_to_cpu(rp->ptr); __entry->ptr = le64_to_cpu(rp->ptr);
__entry->dword0 = le32_to_cpu(rp->dword[0]); __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( 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); + __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
__entry->ch_num = mhi_chan->chan; __entry->ch_num = mhi_chan->chan;
__entry->state = state; __entry->state = state;
__entry->reason = reason; __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( 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); + __assign_str(name, mhi_cntrl->mhi_dev->name);
+#endif
__entry->state = state; __entry->state = state;
), ),
--- a/drivers/net/wireless/ath/ath10k/trace.h --- a/drivers/net/wireless/ath/ath10k/trace.h
+++ b/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) __vstring(msg, vaf->fmt, vaf->va)
), ),
TP_fast_assign( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va); __assign_vstr(msg, vaf->fmt, vaf->va);
), ),
TP_printk( 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) __vstring(msg, vaf->fmt, vaf->va)
), ),
TP_fast_assign( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->level = level; __entry->level = level;
__assign_vstr(msg, vaf->fmt, vaf->va); __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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
- __assign_str(msg); __assign_str(driver);
- __assign_str(prefix); __assign_str(msg);
__assign_str(prefix);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+ __assign_str(msg, msg); + __assign_str(msg, msg);
+ __assign_str(prefix, prefix); + __assign_str(prefix, prefix);
+#endif
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->id = id; __entry->id = id;
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->id = id; __entry->id = id;
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->hw_type = ar->hw_rev; __entry->hw_type = ar->hw_rev;
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->hw_type = ar->hw_rev; __entry->hw_type = ar->hw_rev;
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
memcpy(__get_dynamic_array(pktlog), buf, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->msdu_id = msdu_id; __entry->msdu_id = msdu_id;
__entry->msdu_len = msdu_len; __entry->msdu_len = msdu_len;
__entry->vdev_id = vdev_id; __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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->msdu_id = msdu_id; __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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->len = ath10k_frm_hdr_len(data, len); __entry->len = ath10k_frm_hdr_len(data, len);
memcpy(__get_dynamic_array(data), data, __entry->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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->len = len - ath10k_frm_hdr_len(data, len); __entry->len = len - ath10k_frm_hdr_len(data, len);
memcpy(__get_dynamic_array(payload), memcpy(__get_dynamic_array(payload),
data + ath10k_frm_hdr_len(data, len), __entry->len); 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->hw_type = ar->hw_rev; __entry->hw_type = ar->hw_rev;
__entry->len = len; __entry->len = len;
memcpy(__get_dynamic_array(rxdesc), data, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->type = type; __entry->type = type;
__entry->timestamp = timestamp; __entry->timestamp = timestamp;
__entry->code = code; __entry->code = code;
@@ -505,8 +505,8 @@ TRACE_EVENT(ath10k_wmi_diag, @@ -505,8 +577,13 @@ TRACE_EVENT(ath10k_wmi_diag,
), ),
TP_fast_assign( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->dev)); + __assign_str(device, dev_name(ar->dev));
+ __assign_str(driver, dev_driver_string(ar->dev)); + __assign_str(driver, dev_driver_string(ar->dev));
+#endif
__entry->len = len; __entry->len = len;
memcpy(__get_dynamic_array(data), data, len); memcpy(__get_dynamic_array(data), data, len);
), ),
--- a/drivers/net/wireless/ath/ath11k/trace.h --- a/drivers/net/wireless/ath/ath11k/trace.h
+++ b/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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev)); + __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev)); + __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
__entry->pktlog_checksum = pktlog_checksum; __entry->pktlog_checksum = pktlog_checksum;
memcpy(__get_dynamic_array(pktlog), buf, buf_len); 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev)); + __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev)); + __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->len = len; __entry->len = len;
memcpy(__get_dynamic_array(ppdu), data, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev)); + __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev)); + __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->len = len; __entry->len = len;
__entry->log_type = log_type; __entry->log_type = log_type;
memcpy(__get_dynamic_array(rxdesc), data, len); 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) __vstring(msg, vaf->fmt, vaf->va)
), ),
TP_fast_assign( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev)); + __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev)); + __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va); __assign_vstr(msg, vaf->fmt, vaf->va);
), ),
TP_printk( TP_printk(
@@ -171,8 +171,8 @@ TRACE_EVENT(ath11k_wmi_cmd, @@ -171,8 +191,13 @@ TRACE_EVENT(ath11k_wmi_cmd,
), ),
TP_fast_assign( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev)); + __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev)); + __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__entry->id = id; __entry->id = id;
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev)); + __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev)); + __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__entry->id = id; __entry->id = id;
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev)); + __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev)); + __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__entry->level = level; __entry->level = level;
WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg), WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg),
ATH11K_MSG_MAX, vaf->fmt, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
- __assign_str(msg); __assign_str(driver);
- __assign_str(prefix); __assign_str(msg);
__assign_str(prefix);
+#else
+ __assign_str(device, dev_name(ab->dev)); + __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev)); + __assign_str(driver, dev_driver_string(ab->dev));
+ __assign_str(msg, msg); + __assign_str(msg, msg);
+ __assign_str(prefix, prefix); + __assign_str(prefix, prefix);
+#endif
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev)); + __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev)); + __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__entry->len = len; __entry->len = len;
memcpy(__get_dynamic_array(data), data, 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) __field(u32, peer_ps_timestamp)
), ),
- TP_fast_assign(__assign_str(device); - TP_fast_assign(__assign_str(device);
- __assign_str(driver); + TP_fast_assign(
+ TP_fast_assign(__assign_str(device, dev_name(ar->ab->dev)); +#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)); + __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
memcpy(__get_dynamic_array(peer_addr), peer_addr, memcpy(__get_dynamic_array(peer_addr), peer_addr,
ETH_ALEN); ETH_ALEN);
__entry->peer_ps_state = peer_ps_state; __entry->peer_ps_state = peer_ps_state;
--- a/drivers/net/wireless/ath/ath12k/trace.h --- a/drivers/net/wireless/ath/ath12k/trace.h
+++ b/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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev)); + __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev)); + __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
__entry->pktlog_checksum = pktlog_checksum; __entry->pktlog_checksum = pktlog_checksum;
memcpy(__get_dynamic_array(pktlog), buf, buf_len); 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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev)); + __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev)); + __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->len = len; __entry->len = len;
__entry->info = ar->pdev->timestamp.info; __entry->info = ar->pdev->timestamp.info;
__entry->sync_tstmp_lo_us = ar->pdev->timestamp.sync_timestamp_hi_us; __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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ar->ab->dev)); + __assign_str(device, dev_name(ar->ab->dev));
+ __assign_str(driver, dev_driver_string(ar->ab->dev)); + __assign_str(driver, dev_driver_string(ar->ab->dev));
+#endif
__entry->len = len; __entry->len = len;
__entry->type = type; __entry->type = type;
__entry->info = ar->pdev->timestamp.info; __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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, dev_name(ab->dev)); + __assign_str(device, dev_name(ab->dev));
+ __assign_str(driver, dev_driver_string(ab->dev)); + __assign_str(driver, dev_driver_string(ab->dev));
+#endif
__entry->len = len; __entry->len = len;
memcpy(__get_dynamic_array(data), data, len); memcpy(__get_dynamic_array(data), data, len);
), ),
--- a/drivers/net/wireless/ath/ath6kl/trace.h --- a/drivers/net/wireless/ath/ath6kl/trace.h
+++ b/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( TP_fast_assign(
- __assign_str(msg); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(prefix); __assign_str(msg);
__assign_str(prefix);
+#else
+ __assign_str(msg, msg); + __assign_str(msg, msg);
+ __assign_str(prefix, prefix); + __assign_str(prefix, prefix);
+#endif
__entry->buf_len = buf_len; __entry->buf_len = buf_len;
memcpy(__get_dynamic_array(buf), buf, buf_len); memcpy(__get_dynamic_array(buf), buf, buf_len);
), ),
--- a/drivers/net/wireless/ath/trace.h --- a/drivers/net/wireless/ath/trace.h
+++ b/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( TP_fast_assign(
- __assign_str(device); +#if LINUX_VERSION_IS_GEQ(6,10,0)
- __assign_str(driver); __assign_str(device);
__assign_str(driver);
+#else
+ __assign_str(device, wiphy_name(wiphy)); + __assign_str(device, wiphy_name(wiphy));
+ __assign_str(driver, KBUILD_MODNAME); + __assign_str(driver, KBUILD_MODNAME);
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va); __assign_vstr(msg, vaf->fmt, vaf->va);
), ),
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/tracepoint.h --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/tracepoint.h
+++ b/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) __vstring(msg, vaf->fmt, vaf->va)
), ),
TP_fast_assign( TP_fast_assign(
- __assign_str(func); +#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(func);
+#else
+ __assign_str(func, func); + __assign_str(func, func);
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va); __assign_vstr(msg, vaf->fmt, vaf->va);
), ),
TP_printk("%s: %s", __get_str(func), __get_str(msg)) 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( TP_fast_assign(
__entry->level = level; __entry->level = level;
- __assign_str(func); +#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(func);
+#else
+ __assign_str(func, func); + __assign_str(func, func);
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va); __assign_vstr(msg, vaf->fmt, vaf->va);
), ),
TP_printk("%s: %s", __get_str(func), __get_str(msg)) TP_printk("%s: %s", __get_str(func), __get_str(msg))
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac.h --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac.h
+++ b/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) __field(u32, mask)
), ),
TP_fast_assign( TP_fast_assign(
- __assign_str(dev); +#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(dev);
+#else
+ __assign_str(dev, dev_name(dev)); + __assign_str(dev, dev_name(dev));
+#endif
__entry->in_isr = in_isr; __entry->in_isr = in_isr;
__entry->macintstatus = macintstatus; __entry->macintstatus = macintstatus;
__entry->mask = mask; __entry->mask = mask;
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_msg.h --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_msg.h
+++ b/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( TP_fast_assign(
__entry->level = level; __entry->level = level;
- __assign_str(func); +#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(func);
+#else
+ __assign_str(func, func); + __assign_str(func, func);
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va); __assign_vstr(msg, vaf->fmt, vaf->va);
), ),
TP_printk("%s: %s", __get_str(func), __get_str(msg)) TP_printk("%s: %s", __get_str(func), __get_str(msg))
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_tx.h --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_tx.h
+++ b/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) __dynamic_array(u8, txh, txh_len)
), ),
TP_fast_assign( TP_fast_assign(
- __assign_str(dev); +#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(dev);
+#else
+ __assign_str(dev, dev_name(dev)); + __assign_str(dev, dev_name(dev));
+#endif
memcpy(__get_dynamic_array(txh), txh, txh_len); memcpy(__get_dynamic_array(txh), txh, txh_len);
), ),
TP_printk("[%s] txdesc", __get_str(dev)) 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) __field(u16, ackphyrxsh)
), ),
TP_fast_assign( TP_fast_assign(
- __assign_str(dev); +#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(dev);
+#else
+ __assign_str(dev, dev_name(dev)); + __assign_str(dev, dev_name(dev));
+#endif
__entry->framelen = framelen; __entry->framelen = framelen;
__entry->frameid = frameid; __entry->frameid = frameid;
__entry->status = status; __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) __field(u16, dma_len)
), ),
TP_fast_assign( TP_fast_assign(
- __assign_str(dev); +#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(dev);
+#else
+ __assign_str(dev, dev_name(dev)); + __assign_str(dev, dev_name(dev));
+#endif
__entry->max_ampdu_len = max_ampdu_len; __entry->max_ampdu_len = max_ampdu_len;
__entry->max_ampdu_frames = max_ampdu_frames; __entry->max_ampdu_frames = max_ampdu_frames;
__entry->ampdu_len = ampdu_len; __entry->ampdu_len = ampdu_len;
--- a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-msg.h --- a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-msg.h
+++ b/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( TP_fast_assign(
__entry->level = level; __entry->level = level;
- __assign_str(function); +#if LINUX_VERSION_IS_GEQ(6,10,0)
__assign_str(function);
+#else
+ __assign_str(function, function); + __assign_str(function, function);
+#endif
__assign_vstr(msg, vaf->fmt, vaf->va); __assign_vstr(msg, vaf->fmt, vaf->va);
), ),
TP_printk("%s", __get_str(msg)) TP_printk("%s", __get_str(msg))
--- a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h --- a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h
+++ b/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 #endif
#define DEV_ENTRY __string(dev, dev_name(dev)) #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)) +#define DEV_ASSIGN __assign_str(dev, dev_name(dev))
+#endif
#include "iwl-devtrace-io.h" #include "iwl-devtrace-io.h"
#include "iwl-devtrace-ucode.h" #include "iwl-devtrace-ucode.h"
--- a/include/trace/events/qrtr.h --- a/include/trace/events/qrtr.h
+++ b/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( 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); + __assign_str(ctrl_pkt_str, ctrl_pkt_str);
+#endif
__entry->sq_node = sq_node; __entry->sq_node = sq_node;
__entry->sq_port = sq_port; __entry->sq_port = sq_port;
), ),
--- a/net/mac80211/trace.h --- a/net/mac80211/trace.h
+++ b/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) __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; \ #define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \
__entry->p2p = sdata->vif.p2p; \ __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) + __assign_str(vif_name, sdata->name)
+#endif
#define VIF_PR_FMT " vif:%s(%d%s)" #define VIF_PR_FMT " vif:%s(%d%s)"
#define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : "" #define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : ""
--- a/net/wireless/trace.h --- a/net/wireless/trace.h
+++ b/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( TP_fast_assign(
WIPHY_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>"); + __assign_str(vir_intf_name, name ? name : "<noname>");
+#endif
__entry->type = type; __entry->type = type;
), ),
TP_printk(WIPHY_PR_FMT ", virtual intf name: %s, type: %d", TP_printk(WIPHY_PR_FMT ", virtual intf name: %s, type: %d",

View File

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

View File

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

View File

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

View File

@ -8,6 +8,9 @@
* that is Not copyrighted -- provided to the public domain * that is Not copyrighted -- provided to the public domain
* Version 1.4 11 December 2005 Mark Adler * 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 * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
@ -28,31 +31,54 @@
#include <assert.h> #include <assert.h>
#include <unistd.h> #include <unistd.h>
#include <stdint.h> #include <stdint.h>
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <endian.h> #include <endian.h>
#include <errno.h> #include <errno.h>
#include "zlib.h" #include "zlib.h"
#define CHUNK 1024 #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. /* Decompress from file source to data buffer until stream ends
inf() returns Z_OK on success, Z_MEM_ERROR if memory could not be * or *limit bytes have been written to buffer.
allocated for processing, Z_DATA_ERROR if the deflate data is *
invalid or incomplete, Z_VERSION_ERROR if the version of zlib.h and * On call, 'limit' must reference a variable containing the intended
the version of the library linked do not match, or Z_ERRNO if there * number of bytes to retrieve (must be <= allocated buffer size).
is an error reading or writing the files. */ *
static int inf(FILE *source, FILE *dest, size_t limit, size_t skip) * 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; int ret;
size_t have;
z_stream strm; z_stream strm;
unsigned char in[CHUNK]; unsigned char in[CHUNK];
unsigned char out[CHUNK];
/* allocate inflate state */ /* allocate inflate state */
strm.zalloc = Z_NULL; 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) if (ret != Z_OK)
return ret; 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 */ /* decompress until deflate stream ends or end of file */
do { do {
strm.avail_in = fread(in, 1, CHUNK, source); 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; break;
strm.next_in = in; strm.next_in = in;
/* run inflate() on input until output buffer not full */ /* run inflate(), fill data buffer with all available output */
do { ret = inflate(&strm, Z_FINISH);
strm.avail_out = CHUNK; assert(ret != Z_STREAM_ERROR); /* state not clobbered */
strm.next_out = out;
ret = inflate(&strm, Z_NO_FLUSH); switch (ret) {
assert(ret != Z_STREAM_ERROR); /* state not clobbered */
switch (ret) {
case Z_NEED_DICT: case Z_NEED_DICT:
ret = Z_DATA_ERROR; /* and fall through */ ret = Z_DATA_ERROR; /* and fall through */
case Z_DATA_ERROR: case Z_DATA_ERROR:
case Z_MEM_ERROR: case Z_MEM_ERROR:
(void)inflateEnd(&strm); (void)inflateEnd(&strm);
return ret; return ret;
} }
have = special_min(limit, CHUNK - strm.avail_out) - skip; /* done when inflate() says it's done or limit reached */
if (fwrite(&out[skip], have, 1, dest) != 1 || ferror(dest)) { } while (ret != Z_STREAM_END && strm.avail_out > 0);
(void)inflateEnd(&strm);
return Z_ERRNO;
}
skip = 0;
limit -= have;
} while (strm.avail_out == 0 && limit > 0);
/* done when inflate() says it's done */ /* set limit to end of retrieved data */
} while (ret != Z_STREAM_END && limit > 0); assert(strm.total_out <= *limit);
*limit = strm.total_out;
/* clean up and return */ /* clean up and return */
(void)inflateEnd(&strm); (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 */ /* report a zlib or i/o error */
@ -140,7 +163,8 @@ static unsigned int get_num(char *str)
static void usage(void) 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"); "Finds and extracts zlib compressed calibration data in the EVA loader\n");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
@ -154,15 +178,18 @@ struct cal_entry {
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
struct cal_entry cal = { .len = 0 }; struct cal_entry cal = { .len = 0 };
unsigned char *buf = NULL;
FILE *in = stdin; FILE *in = stdin;
FILE *out = stdout; FILE *out = stdout;
size_t datasize = DEFAULT_BUFFERSIZE;
size_t limit = 0, skip = 0; size_t limit = 0, skip = 0;
int initial_offset = 0; int initial_offset = 0;
int entry = -1; int entry = -1;
bool reversed = false, limit_was_set = true;
int ret; int ret;
int opt; 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) { switch (opt) {
case 's': case 's':
initial_offset = (int)get_num(optarg); initial_offset = (int)get_num(optarg);
@ -199,6 +226,9 @@ int main(int argc, char **argv)
goto out_bad; goto out_bad;
} }
break; break;
case 'r':
reversed = true;
break;
default: /* '?' */ default: /* '?' */
usage(); usage();
} }
@ -243,11 +273,50 @@ int main(int argc, char **argv)
goto out_bad; goto out_bad;
} }
ret = inf(in, out, limit, skip); /* Set boundaries. Only keep default datasize if we need complete data
if (ret == Z_OK) * for reversal and didn't set a higher limit. */
goto out; 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: out_bad:
ret = EXIT_FAILURE; ret = EXIT_FAILURE;
@ -257,5 +326,6 @@ out:
fclose(in); fclose(in);
if (out) if (out)
fclose(out); fclose(out);
free(buf);
return ret; return ret;
} }

View File

@ -40,7 +40,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
--- a/drivers/thermal/thermal_of.c --- a/drivers/thermal/thermal_of.c
+++ b/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 coef[2];
int ncoef = ARRAY_SIZE(coef); int ncoef = ARRAY_SIZE(coef);
@ -49,7 +49,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
tzp->no_hwmon = true; 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 * thermal zone. Thus, we are considering only the first two
* values as slope and offset. * 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) 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 * zone properties and registers new thermal zone with those
* properties. * properties.
* *
@ -83,7 +83,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* *
* Return: a valid thermal zone structure pointer on success. * Return: a valid thermal zone structure pointer on success.
* - EINVAL: if the device tree thermal description is malformed * - 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 * - 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, 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 thermal_zone_device_ops *of_ops;
struct device_node *np; struct device_node *np;
int delay, pdelay; 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; goto out_kfree_trips;
} }
@ -106,7 +106,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
of_ops->bind = thermal_of_bind; of_ops->bind = thermal_of_bind;
of_ops->unbind = thermal_of_unbind; 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); mask = GENMASK_ULL((ntrips) - 1, 0);
tz = thermal_zone_device_register_with_trips(np->name, trips, ntrips, 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); pdelay, delay);
if (IS_ERR(tz)) { if (IS_ERR(tz)) {
ret = PTR_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, struct thermal_zone_device *devm_thermal_of_zone_register(struct device *dev, int sensor_id, void *data,
const struct thermal_zone_device_ops *ops) 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; struct thermal_zone_device **ptr, *tzd;
ptr = devres_alloc(devm_thermal_of_zone_release, sizeof(*ptr), 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) if (!ptr)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
@ -132,7 +132,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
if (IS_ERR(tzd)) { if (IS_ERR(tzd)) {
devres_free(ptr); devres_free(ptr);
return tzd; 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); 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" \ ucidef_add_switch "switch0" \
"0u@eth1" "4:lan:1" "3:lan:2" "2:lan:3" "1:lan:4" "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|\
teltonika,rut955-h7v3c0) teltonika,rut955-h7v3c0)
ucidef_set_interface_wan "eth1" ucidef_set_interface_wan "eth1"
@ -813,6 +817,7 @@ ath79_setup_macs()
wan_mac=$(mtd_get_mac_binary factory 0x0) wan_mac=$(mtd_get_mac_binary factory 0x0)
lan_mac=$(macaddr_setbit_la "$wan_mac") lan_mac=$(macaddr_setbit_la "$wan_mac")
;; ;;
ruckus,r500|\
ruckus,zf7025|\ ruckus,zf7025|\
ruckus,zf7321|\ ruckus,zf7321|\
ruckus,zf7341|\ ruckus,zf7341|\

View File

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

View File

@ -2945,6 +2945,17 @@ define Device/ruckus_zf7372
endef endef
TARGET_DEVICES += ruckus_zf7372 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 define Device/samsung_wam250
SOC := ar9344 SOC := ar9344
DEVICE_VENDOR := Samsung DEVICE_VENDOR := Samsung

View File

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

View File

@ -1189,7 +1189,7 @@ Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
} }
--- a/drivers/usb/core/hub.c --- a/drivers/usb/core/hub.c
+++ b/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_dev->over_current_count++;
port_over_current_notify(port_dev); 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 --- a/net/bluetooth/hci_sync.c
+++ b/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) static int hci_dev_setup_sync(struct hci_dev *hdev)
{ {
@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
int ret = 0; int ret = 0;
bool invalid_bdaddr; bool invalid_bdaddr;
size_t i; size_t i;
@@ -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); test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
if (!ret) { if (!ret) {
if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) && if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&

View File

@ -333,7 +333,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
/* Global Debug LSP MUX Select */ /* Global Debug LSP MUX Select */
#define DWC3_GDBGLSPMUX_ENDBC BIT(15) /* Host only */ #define DWC3_GDBGLSPMUX_ENDBC BIT(15) /* Host only */
#define DWC3_GDBGLSPMUX_HOSTSELECT(n) ((n) & 0x3fff) #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_max_burst_prd: max periodic ESS transmit burst size
* @tx_fifo_resize_max_num: max number of fifos allocated during txfifo resize * @tx_fifo_resize_max_num: max number of fifos allocated during txfifo resize
* @clear_stall_protocol: endpoint number that requires a delayed status phase * @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" * @hsphy_interface: "utmi" or "ulpi"
* @connected: true when we're connected to a host, false otherwise * @connected: true when we're connected to a host, false otherwise
* @softconnect: true when gadget connect is called, false when disconnect runs * @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_max_burst_prd;
u8 tx_fifo_resize_max_num; u8 tx_fifo_resize_max_num;
u8 clear_stall_protocol; 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) #define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST BIT(10)
/* Global Status Register */ /* Global Status Register */
@@ -1121,10 +1122,12 @@ struct dwc3_scratchpad_array { @@ -1122,10 +1123,12 @@ struct dwc3_scratchpad_array {
* generation after resume from suspend. * generation after resume from suspend.
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin * @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
* VBUS with an external supply. * 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_quirk: set if we enable Tx de-emphasis quirk
* @tx_de_emphasis: Tx de-emphasis value * @tx_de_emphasis: Tx de-emphasis value
* 0 - -6dB de-emphasis * 0 - -6dB de-emphasis
@@ -1351,6 +1354,7 @@ struct dwc3 { @@ -1352,6 +1355,7 @@ struct dwc3 {
unsigned ulpi_ext_vbus_drv:1; unsigned ulpi_ext_vbus_drv:1;
unsigned parkmode_disable_ss_quirk:1; unsigned parkmode_disable_ss_quirk:1;
unsigned parkmode_disable_hs_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 --- a/net/bluetooth/hci_sync.c
+++ b/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) 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_SS BIT(17)
#define DWC3_GUCTL1_PARKMODE_DISABLE_HS BIT(16) #define DWC3_GUCTL1_PARKMODE_DISABLE_HS BIT(16)
#define DWC3_GUCTL1_PARKMODE_DISABLE_FSLS BIT(15) #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. * generation after resume from suspend.
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin * @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
* VBUS with an external supply. * 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 * @parkmode_disable_ss_quirk: If set, disable park mode feature for all
* Superspeed instances. * Superspeed instances.
* @parkmode_disable_hs_quirk: If set, disable park mode feature for all * @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 dis_tx_ipgap_linecheck_quirk:1;
unsigned resume_hs_terminations:1; unsigned resume_hs_terminations:1;
unsigned ulpi_ext_vbus_drv: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 --- a/net/netfilter/nf_conntrack_core.c
+++ b/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) { if (!nf_conntrack_htable_size) {
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 --- a/net/netfilter/nf_tables_api.c
+++ b/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, err = flowtable->data.type->setup(&flowtable->data,
hook->ops.dev, hook->ops.dev,
FLOW_BLOCK_BIND); 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") tffsdev=$(find_mtd_chardev "nand-tffs")
lan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n maca -o) lan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n maca -o)
wan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n macdsl -o) wan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n macdsl -o)
label_mac=$lan_mac
;; ;;
bt,homehub-v5a) bt,homehub-v5a)
lan_mac=$(mtd_get_mac_binary_ubi caldata 0x110c) 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 "$lan_mac" ] && ucidef_set_interface_macaddr "lan" "$lan_mac"
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" "$wan_mac" [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" "$wan_mac"
[ -n "$label_mac" ] && ucidef_set_label_macaddr "$label_mac"
} }
board_config_update board_config_update

View File

@ -19,11 +19,14 @@ case "$FIRMWARE" in
avm,fritz3390) avm,fritz3390)
caldata_extract_reverse "urlader" 0x2546 0x440 caldata_extract_reverse "urlader" 0x2546 0x440
;; ;;
avm,fritz7412|\ avm,fritz7412)
avm,fritz7430)
/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 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") /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) bt,homehub-v5a)
caldata_extract_ubi "caldata" 0x1000 0x1000 caldata_extract_ubi "caldata" 0x1000 0x1000
ath9k_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary_ubi caldata 0x110c) 2) 0x10c ath9k_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary_ubi caldata 0x110c) 2) 0x10c

View File

@ -5,6 +5,24 @@ START=99
boot() { boot() {
case $(board_name) in 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) zyxel,ex5700-telenor)
fw_setenv uboot_bootcount 0 fw_setenv uboot_bootcount 0
;; ;;

View File

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

View File

@ -1967,6 +1967,10 @@ TARGET_DEVICES += zbtlink_zbt-z8103ax
define Device/zyxel_ex5601-t0-stock define Device/zyxel_ex5601-t0-stock
DEVICE_VENDOR := Zyxel DEVICE_VENDOR := Zyxel
DEVICE_MODEL := EX5601-T0 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_VARIANT := (stock layout)
DEVICE_DTS := mt7986a-zyxel-ex5601-t0-stock DEVICE_DTS := mt7986a-zyxel-ex5601-t0-stock
DEVICE_DTS_DIR := ../dts DEVICE_DTS_DIR := ../dts
@ -1990,6 +1994,10 @@ TARGET_DEVICES += zyxel_ex5601-t0-stock
define Device/zyxel_ex5601-t0-ubootmod define Device/zyxel_ex5601-t0-ubootmod
DEVICE_VENDOR := Zyxel DEVICE_VENDOR := Zyxel
DEVICE_MODEL := EX5601-T0 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_VARIANT := (OpenWrt U-Boot layout)
DEVICE_DTS := mt7986a-zyxel-ex5601-t0-ubootmod DEVICE_DTS := mt7986a-zyxel-ex5601-t0-ubootmod
DEVICE_DTS_DIR := ../dts 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) $(Device/uimage-lzma-loader)
BLOCKSIZE := 128k BLOCKSIZE := 128k
PAGESIZE := 2048 PAGESIZE := 2048
IMAGE_SIZE := 24903680 IMAGE_SIZE := 20368588
DEVICE_VENDOR := Keenetic DEVICE_VENDOR := Keenetic
DEVICE_MODEL := KN-1910 DEVICE_MODEL := KN-1910
DEVICE_PACKAGES := kmod-mt7615-firmware kmod-usb3 \ DEVICE_PACKAGES := kmod-mt7615-firmware kmod-usb3 automount
kmod-usb-ledtrig-usbport automount
IMAGES += factory.bin IMAGES += factory.bin
IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | \ IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | \
append-ubi | check-size | zyimage -d 0x801910 -v "KN-1910" 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 define Device/keenetic_kn-1711
BLOCKSIZE := 64k BLOCKSIZE := 64k
IMAGE_SIZE := 13434880 IMAGE_SIZE := 10551296
DEVICE_VENDOR := Keenetic DEVICE_VENDOR := Keenetic
DEVICE_MODEL := KN-1711 DEVICE_MODEL := KN-1711
DEVICE_PACKAGES := kmod-mt7615e kmod-mt7663-firmware-ap kmod-usb2 DEVICE_PACKAGES := kmod-mt7615e kmod-mt7663-firmware-ap kmod-usb2
@ -381,7 +381,7 @@ TARGET_DEVICES += keenetic_kn-1711
define Device/keenetic_kn-1713 define Device/keenetic_kn-1713
BLOCKSIZE := 64k BLOCKSIZE := 64k
IMAGE_SIZE := 13434880 IMAGE_SIZE := 10551296
DEVICE_VENDOR := Keenetic DEVICE_VENDOR := Keenetic
DEVICE_MODEL := KN-1713 DEVICE_MODEL := KN-1713
DEVICE_PACKAGES := kmod-mt7615e kmod-mt7663-firmware-ap kmod-usb2 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) label_mac=$(get_mac_label)
lan_mac="$label_mac" 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=$(mtd_get_mac_ascii u-boot-env2 mac_start)
lan_mac_end=$(mtd_get_mac_ascii u-boot-env2 mac_end) 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 { pinmux_led: pinmux@1b00cc00 {
compatible = "pinctrl-single"; compatible = "pinctrl-single";
reg = <0x1b00cc00 0x4>; 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_XGMII, config->supported_interfaces);
__set_bit(PHY_INTERFACE_MODE_USXGMII, 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_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, 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)) if (of_property_read_u32(dn, "sds", &sds_num))
sds_num = -1; 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 { } else {
dev_err(dev, "No DT node.\n"); dev_err(dev, "No DT node.\n");
return -EINVAL; return -EINVAL;
@ -1700,7 +1700,7 @@ static int rtl9300_read_status(struct phy_device *phydev)
return 0; return 0;
mode = rtl9300_sds_mode_get(sds_num); 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) if (mode == RTL930X_SDS_OFF)
mode = rtl9300_sds_field_r(sds_num, 0x1f, 9, 11, 7); mode = rtl9300_sds_field_r(sds_num, 0x1f, 9, 11, 7);
if (mode == RTL930X_SDS_MODE_10GBASER) { /* 10GR mode */ 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); 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) { if (latch_status) {
phydev->link = true; phydev->link = true;

View File

@ -1,5 +1,23 @@
# SPDX-License-Identifier: GPL-2.0-only # 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 define Device/zyxel_xgs1250-12
SOC := rtl9302 SOC := rtl9302
UIMAGE_MAGIC := 0x93001250 UIMAGE_MAGIC := 0x93001250

View File

@ -85,6 +85,7 @@ CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y CONFIG_HAS_IOPORT=y
CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_IOPORT_MAP=y
CONFIG_HIGHMEM=y
CONFIG_HWMON=y CONFIG_HWMON=y
CONFIG_HZ_PERIODIC=y CONFIG_HZ_PERIODIC=y
CONFIG_I2C=y CONFIG_I2C=y
@ -104,6 +105,7 @@ CONFIG_IRQ_MIPS_CPU=y
CONFIG_IRQ_WORK=y CONFIG_IRQ_WORK=y
CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_ZLIB=y
CONFIG_LEDS_GPIO=y CONFIG_LEDS_GPIO=y
# CONFIG_LEDS_RTL8231 is not set
CONFIG_LIBFDT=y CONFIG_LIBFDT=y
CONFIG_LOCK_DEBUGGING_SUPPORT=y CONFIG_LOCK_DEBUGGING_SUPPORT=y
CONFIG_MACH_REALTEK_RTL=y CONFIG_MACH_REALTEK_RTL=y
@ -112,9 +114,9 @@ CONFIG_MDIO_BUS=y
CONFIG_MDIO_DEVICE=y CONFIG_MDIO_DEVICE=y
CONFIG_MDIO_DEVRES=y CONFIG_MDIO_DEVRES=y
CONFIG_MDIO_I2C=y CONFIG_MDIO_I2C=y
# CONFIG_MDIO_REALTEK_OTTO_AUX is not set CONFIG_MDIO_REALTEK_OTTO_AUX=y
CONFIG_MDIO_SMBUS=y CONFIG_MDIO_SMBUS=y
# CONFIG_MFD_RTL8231 is not set CONFIG_MFD_RTL8231=y
CONFIG_MFD_SYSCON=y CONFIG_MFD_SYSCON=y
CONFIG_MIGRATION=y CONFIG_MIGRATION=y
CONFIG_MIPS=y CONFIG_MIPS=y
@ -175,6 +177,7 @@ CONFIG_PHYLIB=y
CONFIG_PHYLIB_LEDS=y CONFIG_PHYLIB_LEDS=y
CONFIG_PHYLINK=y CONFIG_PHYLINK=y
CONFIG_PINCTRL=y CONFIG_PINCTRL=y
CONFIG_PINCTRL_RTL8231=y
CONFIG_POWER_RESET=y CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_POWER_RESET_SYSCON=y CONFIG_POWER_RESET_SYSCON=y
@ -188,6 +191,7 @@ CONFIG_REALTEK_PHY=y
CONFIG_REALTEK_SOC_PHY=y CONFIG_REALTEK_SOC_PHY=y
CONFIG_REGMAP=y CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=y CONFIG_REGMAP_I2C=y
CONFIG_REGMAP_MDIO=y
CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_MMIO=y
CONFIG_RESET_CONTROLLER=y CONFIG_RESET_CONTROLLER=y
# CONFIG_RTL838X is not set # 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 --- a/drivers/usb/dwc3/core.h
+++ b/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 * @bus_clk: clock for accessing the registers
* @ref_clk: reference clock * @ref_clk: reference clock
* @susp_clk: clock used when the SS phy is in low power (S3) state * @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 * @reset: reset control
* @regs: base address for our registers * @regs: base address for our registers
* @regs_size: address space size * @regs_size: address space size
@@ -1174,6 +1176,8 @@ struct dwc3 { @@ -1175,6 +1177,8 @@ struct dwc3 {
struct clk *bus_clk; struct clk *bus_clk;
struct clk *ref_clk; struct clk *ref_clk;
struct clk *susp_clk; struct clk *susp_clk;

View File

@ -25,7 +25,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+ uart->probe = up->probe; + uart->probe = up->probe;
if (uart->port.type != PORT_8250_CIR) { 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 --- a/drivers/tty/serial/8250/8250_dw.c
+++ b/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_ @@ -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_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware-utils.git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware-utils.git
PKG_SOURCE_DATE:=2024-10-20 PKG_SOURCE_DATE:=2025-01-14
PKG_SOURCE_VERSION:=4b7638925d3eac03e614e40bc30cb49f5877c46d PKG_SOURCE_VERSION:=12c0b42231bee58b3cd7cbe95c33de2685484a4f
PKG_MIRROR_HASH:=ea0e30f2b20211e4153704019ebb3f8789269893a4af6d853a85fae7c091802c PKG_MIRROR_HASH:=50d872a5069f9f672de5ea9efcf00872bcce27ec52bbb69fff3785abcee1c77c
include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/cmake.mk include $(INCLUDE_DIR)/cmake.mk