summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2023-12-23Staging: rtl8192e: Rename variable bInitStateTree Davies
Rename variable bInitState to init_state to fix checkpatch warning Avoid CamelCase. Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-20-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Rename variable skb_waitQTree Davies
Rename variable skb_waitQ to skb_waitq to fix checkpatch warning Avoid CamelCase. Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-19-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Rename variable BasicRateTree Davies
Rename variable BasicRate to basic_rate to fix checkpatch warning Avoid CamelCase. Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-18-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Rename variable QueryRateTree Davies
Rename variable QueryRate to query_rate to fix checkpatch warning Avoid CamelCase. Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-17-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Rename function rtllib_TURBO_Info()Tree Davies
Rename function rtllib_TURBO_Info to rtllib_turbo_info to fix checkpatch warning Avoid CamelCase. Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-16-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Rename function rtllib_WMM_Info()Tree Davies
Rename function rtllib_WMM_Info to rtllib_wmm_info to fix checkpatch warning Avoid CamelCase. Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-15-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Rename function rtllib_MFIE_Grate()Tree Davies
Rename function rtllib_MFIE_Grate to rtllib_mfie_grate to fix checkpatch warning Avoid CamelCase. Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-14-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Rename function rtllib_MFIE_Brate()Tree Davies
Rename function rtllib_MFIE_Brate to rtllib_mfie_brate to fix checkpatch warning Avoid CamelCase. Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-13-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Fixup statement broken across 2 lines in ↵Tree Davies
rtllib_softmac_new_net() Join 2 lines to fix Warning: Lines should not end with a '(' Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-12-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Fixup statement broken across 2 lines in ↵Tree Davies
rtllib_softmac_xmit() Join 2 lines to fix Warning: Lines should not end with a '(' Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-11-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Fix function definition broken across multiple linesTree Davies
Join 4 lines, so that function definition resides on a single line, to fix Warning: Lines should not end with a '(' Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-10-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Fix statement broken across 2 lines in rtllib_rx_assoc_resp()Tree Davies
Join 2 lines, so that statment resides on one line, to fix Warning: Lines should not end with a '(' Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-9-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Fixup multiple assinment in init_mgmt_queue()Tree Davies
Break multiple assignment into 2 assignment statements to fix checkpatch Warning: multiple assignments should be avoided. Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-8-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Remove unnecessary parenthesis in rtllib_association_req()Tree Davies
Remove parnthesis to fix checkpatch Warning: Unnecessary parentheses around ieee->ht_info->SelfHTCap Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-7-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Remove unnecessary parenthesis in rtllib_ap_sec_type()Tree Davies
Remove parnthesis to fix checkpatch Warning: Unnecessary parentheses around ieee->wpa_ie[14] Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-6-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Remove unnecessary parenthesis in rtllib_rx_assoc_resp()Tree Davies
Remove parentheses to fix checkpatch Warning: Unnecessary parentheses around resp->info_element[0].id Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-5-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Remove unnecessary parenthesis in rtllib_association_req()Tree Davies
Remove parentheses to fix checkpatch Warning: Unnecessary parentheses around hdr->info_element[0].id Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-4-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Staging: rtl8192e: Remove unnecessary braces from MgntQuery_MgntFrameTxRate()Tree Davies
Remove braces from if statement to fix checkpatch WARNING: 'braces {} are not necessary for single statement blocks' Signed-off-by: Tree Davies <tdavies@darkphysics.net> Link: https://lore.kernel.org/r/20231223015942.418263-2-tdavies@darkphysics.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23staging: rtl8712: fix open parentheses alignmentRyan England
Adhere to Linux kernel coding style. Reported by checkpatch: CHECK: Alignment should match open parenthesis Signed-off-by: Ryan England <rcengland@gmail.com> Link: https://lore.kernel.org/r/ZYSemFbzTlgLROMc@kernel.ryanengland.xyz Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23staging: rtl8192e: rename variable ePeerHTSpecVerGary Rookard
Coding style issue, checkpatch Avoid CamelCase, rename it. ePeerHTSpecVer -> peer_ht_spec_ver Signed-off-by: Gary Rookard <garyrookard@fastmail.org> Link: https://lore.kernel.org/r/20231221183413.8349-6-garyrookard@fastmail.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23staging: rtl8192e: rename variable HTSetConnectBwModeCallbackGary Rookard
Coding style issue, checkpatch Avoid CamelCase, rename it. HTSetConnectBwModeCallback -> ht_set_connect_bw_mode_callback Signed-off-by: Gary Rookard <garyrookard@fastmail.org> Link: https://lore.kernel.org/r/20231221183413.8349-5-garyrookard@fastmail.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23staging: rtl8192e: rename variable HTCCheckGary Rookard
Coding style issue, checkpatch Avoid CamelCase, rename it. HTCCheck -> ht_c_check Signed-off-by: Gary Rookard <garyrookard@fastmail.org> Link: https://lore.kernel.org/r/20231221183413.8349-4-garyrookard@fastmail.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23staging: rtl8192e: rename variable HTResetSelfAndSavePeerSettingGary Rookard
Coding style issue, checkpatch Avoid CamelCase, rename it. HTResetSelfAndSavePeerSetting -> ht_reset_self_and_save_peer_setting Signed-off-by: Gary Rookard <garyrookard@fastmail.org> Link: https://lore.kernel.org/r/20231221183413.8349-3-garyrookard@fastmail.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23staging: rtl8192e: rename variable HTInitializeBssDescGary Rookard
Coding style issue, checkpatch Avoid CamelCase, rename it. HTInitializeBssDesc -> ht_initialize_bss_desc Signed-off-by: Gary Rookard <garyrookard@fastmail.org> Link: https://lore.kernel.org/r/20231221183413.8349-2-garyrookard@fastmail.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23staging: vme_user: Fix the issue of return the wrong error codePiro Yang
Fix the issue of returning the -ENOSYS error code when an error occurs. The error code of -ENOSYS indicates Invalid system call number, but there is not system call error. So replace -ENOSYS error code by the return -EINVAL error code. Signed-off-by: Piro Yang <piroyangg@gmail.com> Link: https://lore.kernel.org/r/20231219170447.51237-1-piroyangg@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-23Merge tag 'fpga-for-6.8-rc1-2' of ↵Greg Kroah-Hartman
git://git.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga into char-misc-next Xu writes: FPGA Manager changes for 6.8-rc1 second part Not sure if it's too late for 6.8 rc1, but I try to speed up this intermediate change. - Uwe's change convert to new platform remove callback. All patches have been reviewed on the mailing list, and have been in the last linux-next releases (as part of our for-next branch). Signed-off-by: Xu Yilun <yilun.xu@intel.com> * tag 'fpga-for-6.8-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga: fpga: zynq-fpga: Convert to platform remove callback returning void fpga: xilinx-pr-decoupler: Convert to platform remove callback returning void fpga: stratix10-soc: Convert to platform remove callback returning void fpga: socfpga-a10: Convert to platform remove callback returning void fpga: of-fpga-region: Convert to platform remove callback returning void fpga: intel-m10-bmc-sec-update: Convert to platform remove callback returning void fpga: dfl-fme-region: Convert to platform remove callback returning void fpga: dfl-fme-main: Convert to platform remove callback returning void fpga: dfl-fme-br: Convert to platform remove callback returning void fpga: dfl-afu-main: Convert to platform remove callback returning void fpga: altera-hps2fpga: Convert to platform remove callback returning void fpga: altera-freeze-bridge: Convert to platform remove callback returning void fpga: altera-fpga2sdram: Convert to platform remove callback returning void
2023-12-23Merge tag 'icc-6.8-rc1' of ↵Greg Kroah-Hartman
git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next Georgi writes: interconnect changes for 6.8 This pull request contains the interconnect changes for the 6.8-rc1 merge window. These are just driver changes with the following highlights: Driver changes: - New interconnect driver for the SM8650 platform. - New interconnect driver for the SM6115 platform. - New interconnect driver for the X1E80100 (Snapdragon X Elite) platform. - Add compatible string for the BWMONv4 instance on the QCM2290 platform. - Complete the platform drivers conversion to the .remove_new callback returning void (mostly iMX, Exynos and the rest of Qcom drivers). Signed-off-by: Georgi Djakov <djakov@kernel.org> * tag 'icc-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc: interconnect: qcom: sm6115: Fix up includes dt-bindings: interconnect: qcom,msm8998-bwmon: Add QCM2290 bwmon instance dt-bindings: interconnect: qcom,msm8998-bwmon: Add SM6115 bwmon instance interconnect: qcom: Add SM6115 interconnect provider driver dt-bindings: interconnect: Add Qualcomm SM6115 NoC interconnect: qcom: Add X1E80100 interconnect provider driver dt-bindings: interconnect: Add Qualcomm X1E80100 SoC dt-bindings: interconnect: qcom-bwmon: document SM8650 BWMONs interconnect: qcom: introduce RPMh Network-On-Chip Interconnect on SM8650 SoC dt-bindings: interconnect: document the RPMh Network-On-Chip Interconnect in Qualcomm SM8650 SoC interconnect: exynos: Convert to platform remove callback returning void interconnect: qcom/smd-rpm: Convert to platform remove callback returning void interconnect: qcom/osm-l3: Convert to platform remove callback returning void interconnect: qcom/msm8974: Convert to platform remove callback returning void interconnect: imx8mq: Convert to platform remove callback returning void interconnect: imx8mp: Convert to platform remove callback returning void interconnect: imx8mn: Convert to platform remove callback returning void interconnect: imx8mm: Convert to platform remove callback returning void interconnect: qcom: Make qnoc_remove return void
2023-12-22Input: soc_button_array - add mapping for airplane mode buttonChristoffer Sandberg
This add a mapping for the airplane mode button on the TUXEDO Pulse Gen3. While it is physically a key it behaves more like a switch, sending a key down on first press and a key up on 2nd press. Therefor the switch event is used here. Besides this behaviour it uses the HID usage-id 0xc6 (Wireless Radio Button) and not 0xc8 (Wireless Radio Slider Switch), but since neither 0xc6 nor 0xc8 are currently implemented at all in soc_button_array this not to standard behaviour is not put behind a quirk for the moment. Signed-off-by: Christoffer Sandberg <cs@tuxedo.de> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com> Link: https://lore.kernel.org/r/20231215171718.80229-1-wse@tuxedocomputers.com Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2023-12-23drm: Warn when freeing a framebuffer that's still on a listVille Syrjälä
Sprinkle some extra WARNs around so that we might catch premature framebuffer destruction more readily. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20231211081625.25704-2-ville.syrjala@linux.intel.com Acked-by: Javier Martinez Canillas <javierm@redhat.com>
2023-12-23drm: Don't unref the same fb many times by mistake due to deadlock handlingVille Syrjälä
If we get a deadlock after the fb lookup in drm_mode_page_flip_ioctl() we proceed to unref the fb and then retry the whole thing from the top. But we forget to reset the fb pointer back to NULL, and so if we then get another error during the retry, before the fb lookup, we proceed the unref the same fb again without having gotten another reference. The end result is that the fb will (eventually) end up being freed while it's still in use. Reset fb to NULL once we've unreffed it to avoid doing it again until we've done another fb lookup. This turned out to be pretty easy to hit on a DG2 when doing async flips (and CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y). The first symptom I saw that drm_closefb() simply got stuck in a busy loop while walking the framebuffer list. Fortunately I was able to convince it to oops instead, and from there it was easier to track down the culprit. Cc: stable@vger.kernel.org Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20231211081625.25704-1-ville.syrjala@linux.intel.com Acked-by: Javier Martinez Canillas <javierm@redhat.com>
2023-12-22Merge tag 'block-6.7-2023-12-22' of git://git.kernel.dk/linuxLinus Torvalds
Pull block fixes from Jens Axboe: "Just an NVMe pull request this time, with a fix for bad sleeping context, and a revert of a patch that caused some trouble" * tag 'block-6.7-2023-12-22' of git://git.kernel.dk/linux: nvme-pci: fix sleeping function called from interrupt context Revert "nvme-fc: fix race between error recovery and creating association"
2023-12-23dpaa2-switch: cleanup the egress flood of an unused FDBIoana Ciornei
In case a DPAA2 switch interface joins a bridge, the FDB used on the port will be changed to the one associated with the bridge. What this means exactly is that any VLAN installed on the port will need to be removed and then installed back so that it points to the new FDB. Once this is done, the previous FDB will become unused (no VLAN to point to it). Even though no traffic will reach this FDB, it's best to just cleanup the state of the FDB by zeroing its egress flood domain. Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23dpaa2-switch: move a check to the prechangeupper stageIoana Ciornei
Two different DPAA2 switch ports from two different DPSW instances cannot be under the same bridge. Instead of checking for this unsupported configuration in the CHANGEUPPER event, check it as early as possible in the PRECHANGEUPPER one. Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23dpaa2-switch: reorganize the [pre]changeupper eventsIoana Ciornei
Create separate functions, dpaa2_switch_port_prechangeupper and dpaa2_switch_port_changeupper, to be called directly when a DPSW port changes its upper device. This way we are not open-coding everything in the main event callback and we can easily extent, for example, with bond offload. Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23dpaa2-switch: do not clear any interrupts automaticallyIoana Ciornei
The DPSW object has multiple event sources multiplexed over the same IRQ. The driver has the capability to configure only some of these events to trigger the IRQ. The dpsw_get_irq_status() can clear events automatically based on the value stored in the 'status' variable passed to it. We don't want that to happen because we could get into a situation when we are clearing more events than we actually handled. Just resort to manually clearing the events that we handled. Also, since status is not used on the out path we remove its initialization to zero. This change does not have a user-visible effect because the dpaa2-switch driver enables and handles all the DPSW events which exist at the moment. Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23dpaa2-switch: add ENDPOINT_CHANGED to the irq_maskIoana Ciornei
Commit 84cba72956fd ("dpaa2-switch: integrate the MAC endpoint support") added support for MAC endpoints in the dpaa2-switch driver but omitted to add the ENDPOINT_CHANGED irq to the list of interrupt sources. Fix this by extending the list of events which can raise an interrupt by extending the mask passed to the dpsw_set_irq_mask() firmware API. There is no user visible impact even without this patch since whenever a switch interface is connected/disconnected from an endpoint both events are set (LINK_CHANGED and ENDPOINT_CHANGED) and, luckily, the LINK_CHANGED event could actually raise the interrupt and thus get the MAC/PHY SW configuration started. Even with this, it's better to just not rely on undocumented firmware behavior which can change. Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23dpaa2-switch: print an error when the vlan is already configuredIoana Ciornei
Print a netdev error when we hit a case in which a specific VLAN is already configured on the port. While at it, change the already existing netdev_warn into an _err for consistency purposes. Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23dpaa2-switch: declare the netdev as IFF_LIVE_ADDR_CHANGE capableIoana Ciornei
There is no restriction around the change of the MAC address on the switch ports, thus declare the interface netdevs IFF_LIVE_ADDR_CHANGE capable. Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23dpaa2-switch: set interface MAC address only on endpoint changeIoana Ciornei
There is no point in updating the MAC address of a switch interface each time the link state changes, this only needs to happen in case the endpoint changes (the switch interface is [dis]connected from/to a MAC). Just move the call to dpaa2_switch_port_set_mac_addr() under DPSW_IRQ_EVENT_ENDPOINT_CHANGED. Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23net: ethernet: ti: am65-cpsw: add sw tx/rx irq coalescing based on hrtimersGrygorii Strashko
Add SW IRQ coalescing based on hrtimers for TX and RX data path which can be enabled by ethtool commands: - RX coalescing ethtool -C eth1 rx-usecs 50 - TX coalescing can be enabled per TX queue - by default enables coalesing for TX0 ethtool -C eth1 tx-usecs 50 - configure TX0 ethtool -Q eth0 queue_mask 1 --coalesce tx-usecs 100 - configure TX1 ethtool -Q eth0 queue_mask 2 --coalesce tx-usecs 100 - configure TX0 and TX1 ethtool -Q eth0 queue_mask 3 --coalesce tx-usecs 100 --coalesce tx-usecs 100 show configuration for TX0 and TX1: ethtool -Q eth0 queue_mask 3 --show-coalesce Comparing to gro_flush_timeout and napi_defer_hard_irqs, this patch allows to enable IRQ coalesing for RX path separately. Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: Roger Quadros <rogerq@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23net: ethernet: ti: am65-cpsw-qos: Add Frame Preemption MAC Merge supportRoger Quadros
Add driver support for viewing / changing the MAC Merge sublayer parameters and seeing the verification state machine's current state via ethtool. As hardware does not support interrupt notification for verification events we resort to polling on link up. On link up we try a couple of times for verification success and if unsuccessful then give up. The Frame Preemption feature is described in the Technical Reference Manual [1] in section: 12.3.1.4.6.7 Intersperced Express Traffic (IET – P802.3br/D2.0) Due to Silicon Errata i2208 [2] we set limit min IET fragment size to 124 (excluding 4 bytes mCRC). [1] AM62x TRM - https://www.ti.com/lit/ug/spruiv7a/spruiv7a.pdf [2] AM62x Silicon Errata - https://www.ti.com/lit/er/sprz487c/sprz487c.pdf Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23net: ethernet: ti: am65-cpsw: add mqprio qdisc offload in channel modeGrygorii Strashko
This patch adds MQPRIO Qdisc offload in full 'channel' mode which allows not only setting up pri:tc mapping, but also configuring TX shapers (rate-limiting) on external port FIFOs. The MQPRIO Qdisc offload is expected to work with or without VLAN/priority tagged packets. The CPSW external Port FIFO has 8 Priority queues. The rate-limit can be set for each of these priority queues. Which Priority queue a packet is assigned to depends on PN_REG_TX_PRI_MAP register which maps header priority to switch priority. The header priority of a packet is assigned via the RX_PRI_MAP_REG which maps packet priority to header priority. The packet priority is either the VLAN priority (for VLAN tagged packets) or the thread/channel offset. For simplicity, we assign the same priority queue to all queues of a Traffic Class so it can be rate-limited correctly. Configuration example: ethtool -L eth1 tx 5 ethtool --set-priv-flags eth1 p0-rx-ptype-rrobin off tc qdisc add dev eth1 parent root handle 100: mqprio num_tc 3 \ map 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 \ queues 1@0 1@1 1@2 hw 1 mode channel \ shaper bw_rlimit min_rate 0 100mbit 200mbit max_rate 0 101mbit 202mbit tc qdisc replace dev eth2 handle 100: parent root mqprio num_tc 1 \ map 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 queues 1@0 hw 1 ip link add link eth1 name eth1.100 type vlan id 100 ip link set eth1.100 type vlan egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7 In the above example two ports share the same TX CPPI queue 0 for low priority traffic. 3 traffic classes are defined for eth1 and mapped to: TC0 - low priority, TX CPPI queue 0 -> ext Port 1 fifo0, no rate limit TC1 - prio 2, TX CPPI queue 1 -> ext Port 1 fifo1, CIR=100Mbit/s, EIR=1Mbit/s TC2 - prio 3, TX CPPI queue 2 -> ext Port 1 fifo2, CIR=200Mbit/s, EIR=2Mbit/s Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23net: ethernet: am65-cpsw: Move register definitions to header fileRoger Quadros
Move register definitions to header file. No functional change. Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23net: ethernet: ti: am65-cpsw: Move code to avoid forward declarationRoger Quadros
Move this code around to avoid forward declaration. No functional change. Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23net: ethernet: am65-cpsw: cleanup TAPRIO handlingRoger Quadros
Handle offloading commands using switch-case in am65_cpsw_setup_taprio(). Move checks to am65_cpsw_taprio_replace(). Use NL_SET_ERR_MSG_MOD for error messages. Change error message from "Failed to set cycle time extension" to "cycle time extension not supported" Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23net: ethernet: am65-cpsw: Rename TI_AM65_CPSW_TAS to TI_AM65_CPSW_QOSRoger Quadros
We will use this Kconfig option to not only enable TAS/EST offload but also other QoS features like Multiqueue priority descriptors and MAC-Merge/Frame Preemption. TI_AM65_CPSW_QOS seems a more appropriate Kconfig option name than TI_AM65_CPSW_TAS. Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-23net: ethernet: am65-cpsw: Build am65-cpsw-qos only if requiredRoger Quadros
Build am65-cpsw-qos only if CONFIG_TI_AM65_CPSW_TAS is enabled. Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2023-12-22cxl: Check qos_class validity on memdev probeDave Jiang
Add a check to make sure the qos_class for the device will match one of the root decoders qos_class. If no match is found, then the qos_class for the device is set to invalid. Also add a check to ensure that the device's host bridge matches to one of the root decoder's downstream targets. Signed-off-by: Dave Jiang <dave.jiang@intel.com> Link: https://lore.kernel.org/r/170319626313.2212653.9021004640856081917.stgit@djiang5-mobl3 Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2023-12-22cxl: Export sysfs attributes for memory device QoS classDave Jiang
Export qos_class sysfs attributes for the CXL memory device. The QoS clas should show up as /sys/bus/cxl/devices/memX/ram/qos_class for the volatile partition and /sys/bus/cxl/devices/memX/pmem/qos_class for the persistent partition. The QTG ID is retrieved via _DSM after supplying the calculated bandwidth and latency for the entire CXL path from device to the CPU. This ID is used to match up to the root decoder QoS class to determine which CFMWS the memory range of a hotplugged CXL mem device should be assigned under. While there may be multiple DSMAS exported by the device CDAT, the driver will only expose the first QTG ID per partition in sysfs for now. In the future when multiple QTG IDs are necessary, they can be exposed. [1] [1]: https://lore.kernel.org/linux-cxl/167571650007.587790.10040913293130712882.stgit@djiang5-mobl3.local/T/#md2a47b1ead3e1ba08f50eab29a4af1aed1d215ab Suggested-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Dave Jiang <dave.jiang@intel.com> Link: https://lore.kernel.org/r/170319625698.2212653.17544381274847420961.stgit@djiang5-mobl3 Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2023-12-22cxl: Store QTG IDs and related info to the CXL memory device contextDave Jiang
Once the QTG ID _DSM is executed successfully, the QTG ID is retrieved from the return package. Create a list of entries in the cxl_memdev context and store the QTG ID as qos_class token and the associated DPA range. This information can be exposed to user space via sysfs in order to help region setup for hot-plugged CXL memory devices. Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Dave Jiang <dave.jiang@intel.com> Link: https://lore.kernel.org/r/170319625109.2212653.11872111896220384056.stgit@djiang5-mobl3 Signed-off-by: Dan Williams <dan.j.williams@intel.com>