Commit 00e57861 authored by Jimmy Assarsson's avatar Jimmy Assarsson Committed by Marc Kleine-Budde

can: kvaser_usb: Add struct kvaser_usb_busparams

Add struct kvaser_usb_busparams containing the busparameters used in
CMD_{SET,GET}_BUSPARAMS* commands.
Tested-by: default avatarAnssi Hannula <anssi.hannula@bitwise.fi>
Signed-off-by: default avatarJimmy Assarsson <extja@kvaser.com>
Link: https://lore.kernel.org/all/20221010185237.319219-11-extja@kvaser.comSigned-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 90904d32
...@@ -76,6 +76,14 @@ struct kvaser_usb_tx_urb_context { ...@@ -76,6 +76,14 @@ struct kvaser_usb_tx_urb_context {
u32 echo_index; u32 echo_index;
}; };
struct kvaser_usb_busparams {
__le32 bitrate;
u8 tseg1;
u8 tseg2;
u8 sjw;
u8 nsamples;
} __packed;
struct kvaser_usb { struct kvaser_usb {
struct usb_device *udev; struct usb_device *udev;
struct usb_interface *intf; struct usb_interface *intf;
......
...@@ -196,17 +196,9 @@ struct kvaser_cmd_chip_state_event { ...@@ -196,17 +196,9 @@ struct kvaser_cmd_chip_state_event {
#define KVASER_USB_HYDRA_BUS_MODE_CANFD_ISO 0x01 #define KVASER_USB_HYDRA_BUS_MODE_CANFD_ISO 0x01
#define KVASER_USB_HYDRA_BUS_MODE_NONISO 0x02 #define KVASER_USB_HYDRA_BUS_MODE_NONISO 0x02
struct kvaser_cmd_set_busparams { struct kvaser_cmd_set_busparams {
__le32 bitrate; struct kvaser_usb_busparams busparams_arb;
u8 tseg1;
u8 tseg2;
u8 sjw;
u8 nsamples;
u8 reserved0[4]; u8 reserved0[4];
__le32 bitrate_d; struct kvaser_usb_busparams busparams_data;
u8 tseg1_d;
u8 tseg2_d;
u8 sjw_d;
u8 nsamples_d;
u8 canfd_mode; u8 canfd_mode;
u8 reserved1[7]; u8 reserved1[7];
} __packed; } __packed;
...@@ -1538,11 +1530,11 @@ static int kvaser_usb_hydra_set_bittiming(struct net_device *netdev) ...@@ -1538,11 +1530,11 @@ static int kvaser_usb_hydra_set_bittiming(struct net_device *netdev)
return -ENOMEM; return -ENOMEM;
cmd->header.cmd_no = CMD_SET_BUSPARAMS_REQ; cmd->header.cmd_no = CMD_SET_BUSPARAMS_REQ;
cmd->set_busparams_req.bitrate = cpu_to_le32(bt->bitrate); cmd->set_busparams_req.busparams_arb.bitrate = cpu_to_le32(bt->bitrate);
cmd->set_busparams_req.sjw = (u8)sjw; cmd->set_busparams_req.busparams_arb.sjw = (u8)sjw;
cmd->set_busparams_req.tseg1 = (u8)tseg1; cmd->set_busparams_req.busparams_arb.tseg1 = (u8)tseg1;
cmd->set_busparams_req.tseg2 = (u8)tseg2; cmd->set_busparams_req.busparams_arb.tseg2 = (u8)tseg2;
cmd->set_busparams_req.nsamples = 1; cmd->set_busparams_req.busparams_arb.nsamples = 1;
kvaser_usb_hydra_set_cmd_dest_he kvaser_usb_hydra_set_cmd_dest_he
(cmd, dev->card_data.hydra.channel_to_he[priv->channel]); (cmd, dev->card_data.hydra.channel_to_he[priv->channel]);
...@@ -1572,11 +1564,11 @@ static int kvaser_usb_hydra_set_data_bittiming(struct net_device *netdev) ...@@ -1572,11 +1564,11 @@ static int kvaser_usb_hydra_set_data_bittiming(struct net_device *netdev)
return -ENOMEM; return -ENOMEM;
cmd->header.cmd_no = CMD_SET_BUSPARAMS_FD_REQ; cmd->header.cmd_no = CMD_SET_BUSPARAMS_FD_REQ;
cmd->set_busparams_req.bitrate_d = cpu_to_le32(dbt->bitrate); cmd->set_busparams_req.busparams_data.bitrate = cpu_to_le32(dbt->bitrate);
cmd->set_busparams_req.sjw_d = (u8)sjw; cmd->set_busparams_req.busparams_data.sjw = (u8)sjw;
cmd->set_busparams_req.tseg1_d = (u8)tseg1; cmd->set_busparams_req.busparams_data.tseg1 = (u8)tseg1;
cmd->set_busparams_req.tseg2_d = (u8)tseg2; cmd->set_busparams_req.busparams_data.tseg2 = (u8)tseg2;
cmd->set_busparams_req.nsamples_d = 1; cmd->set_busparams_req.busparams_data.nsamples = 1;
if (priv->can.ctrlmode & CAN_CTRLMODE_FD) { if (priv->can.ctrlmode & CAN_CTRLMODE_FD) {
if (priv->can.ctrlmode & CAN_CTRLMODE_FD_NON_ISO) if (priv->can.ctrlmode & CAN_CTRLMODE_FD_NON_ISO)
......
...@@ -164,11 +164,7 @@ struct usbcan_cmd_softinfo { ...@@ -164,11 +164,7 @@ struct usbcan_cmd_softinfo {
struct kvaser_cmd_busparams { struct kvaser_cmd_busparams {
u8 tid; u8 tid;
u8 channel; u8 channel;
__le32 bitrate; struct kvaser_usb_busparams busparams;
u8 tseg1;
u8 tseg2;
u8 sjw;
u8 no_samp;
} __packed; } __packed;
struct kvaser_cmd_tx_can { struct kvaser_cmd_tx_can {
...@@ -1725,15 +1721,15 @@ static int kvaser_usb_leaf_set_bittiming(struct net_device *netdev) ...@@ -1725,15 +1721,15 @@ static int kvaser_usb_leaf_set_bittiming(struct net_device *netdev)
cmd->len = CMD_HEADER_LEN + sizeof(struct kvaser_cmd_busparams); cmd->len = CMD_HEADER_LEN + sizeof(struct kvaser_cmd_busparams);
cmd->u.busparams.channel = priv->channel; cmd->u.busparams.channel = priv->channel;
cmd->u.busparams.tid = 0xff; cmd->u.busparams.tid = 0xff;
cmd->u.busparams.bitrate = cpu_to_le32(bt->bitrate); cmd->u.busparams.busparams.bitrate = cpu_to_le32(bt->bitrate);
cmd->u.busparams.sjw = bt->sjw; cmd->u.busparams.busparams.sjw = bt->sjw;
cmd->u.busparams.tseg1 = bt->prop_seg + bt->phase_seg1; cmd->u.busparams.busparams.tseg1 = bt->prop_seg + bt->phase_seg1;
cmd->u.busparams.tseg2 = bt->phase_seg2; cmd->u.busparams.busparams.tseg2 = bt->phase_seg2;
if (priv->can.ctrlmode & CAN_CTRLMODE_3_SAMPLES) if (priv->can.ctrlmode & CAN_CTRLMODE_3_SAMPLES)
cmd->u.busparams.no_samp = 3; cmd->u.busparams.busparams.nsamples = 3;
else else
cmd->u.busparams.no_samp = 1; cmd->u.busparams.busparams.nsamples = 1;
rc = kvaser_usb_send_cmd(dev, cmd, cmd->len); rc = kvaser_usb_send_cmd(dev, cmd, cmd->len);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment