STRUCT ES58X_PARAMETERS(9)
โจ struct es58x_parameters โ the Kernel API Manual glow-up โจ
okay bestie so you're reading about struct es58x_parameters and honestly? this is the moment. this is the vibe check for your ETAS ES58X CAN-USB driver. it lives in the Kernel API Manual and it's literally the constant parameters of a given hardware variant โ like, one struct per flavor of board, holding all the fixed facts that don't change while the thing is plugged in. ๐
๐ NAME ๐
struct es58x_parameters โ the constant parameters of a given hardware variant. every hardware variant gets its own little bundle of constants, and this is that bundle. no cap. ๐ฆ
๐ธ SYNOPSIS ๐ธ
struct es58x_parameters {
const struct can_bittiming_const *bittiming_const;
const struct can_bittiming_const *data_bittiming_const;
const struct can_tdc_const *tdc_const;
u32 bitrate_max;
struct can_clock clock;
u32 ctrlmode_supported;
u16 tx_start_of_frame;
u16 rx_start_of_frame;
u16 tx_urb_cmd_max_len;
u16 rx_urb_cmd_max_len;
u16 fifo_mask;
u16 dql_min_limit;
u8 tx_bulk_max;
u8 urb_cmd_header_len;
u8 rx_urb_max;
u8 tx_urb_max;
};
like yes, it's a lot of fields. but each one is doing its job. main character energy per member. ๐
๐ Members ๐
bittiming_constโ the nominal bittiming constant parameters. the classic bittiming vibes. โจdata_bittiming_constโ the data bittiming constant parameters. yes, there's a separate one for data. she's different from the nominal one. iykyk.tdc_constโ Transmission Delay Compensation constant parameters. TDC bestie, doing her compensation thing.bitrate_maxโ the maximum bitrate supported by the device. the ceiling. the limit. don't push past her. ๐ฅclockโ the CAN clock parameters.ctrlmode_supportedโ the list of supported modes. please refer to thecan/netlink.hfile for additional details, okay? that's where the lore lives. ๐ซถtx_start_of_frameโ the magic number at the beginning of each TX URB command. literally magic. ๐ฎrx_start_of_frameโ the magic number at the beginning of each RX URB command. also magic, but for the receive side.tx_urb_cmd_max_lenโ maximum length of a TX URB command.rx_urb_cmd_max_lenโ maximum length of a RX URB command.fifo_maskโ a bit mask used to quickly convert thetx_tailandtx_headfield of thestruct es58x_privintoecho_skbindexes. her properties are non-negotiable, so listen up:fifo_mask = echo_skb_max - 1, whereecho_skb_maxmust be a power of two.- also,
echo_skb_maxmust not exceed the maximum size of the device internal TX FIFO length. - this parameter is used to control the network queue wake/stop logic. iconic behaviour honestly. ๐ง
dql_min_limitโ the Dynamic Queue Limits (DQL) absolute minimum limit of bytes allowed to be queued on this network device transmit queue. used by the Byte Queue Limits (BQL) to determine how frequently thexmit_moreflag will be set to true ines58x_start_xmit.
โ ๏ธ so you can set this value higher to optimize for throughput, but be aware that it might have a negative impact on the latency! trade-offs are real. ๐ญ
this value can also be set dynamically. please refer to Documentation/ABI/testing/sysfs-class-net-queues for more details. ๐
tx_bulk_maxโ maximum number of TX messages that can be sent in one single URB packet. bulk her up.urb_cmd_header_lenโ the length of the URB command header.rx_urb_maxโ number of RX URB to be allocated during device probe.tx_urb_maxโ number of TX URB to be allocated during device probe.
๐ SEE ALSO ๐
kernel file ./drivers/net/can/usb/etas_es58x/es58x_core.h, plus the whole friend group:
enum es58x_driver_info(9)enum es58x_physical_layer(9)enum es58x_sync_edge(9)enum es58x_flag(9)enum es58x_err(9)enum es58x_event(9)struct es58x_priv(9)struct es58x_operators(9)struct es58x_sw_version(9)struct es58x_hw_revision(9)struct es58x_device(9)es58x_sizeof_es58x_device(9)es58x_check_msg_len(9)es58x_check_msg_max_len(9)es58x_msg_num_element(9)es58x_priv(9)ES58X_SIZEOF_URB_CMD(9)es58x_get_urb_cmd_len(9)es58x_get_netdev(9)es58x_get_raw_can_id(9)es58x_get_flags(9)
okay that's the whole page, bestie, you ate that. ๐ this little beauty comes to you from ./drivers/net/can/usb/etas_es58x, dated October 2026, and it's filed under struct es58x_parameters(9) in the Kernel API Manual. go forth and configure your hardware variant. periodt. ๐๐ฆโจ
๐ฆ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms