summaryrefslogtreecommitdiffstats
path: root/drivers/net/can
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-12-10 15:48:20 -0500
committerDavid S. Miller <davem@davemloft.net>2014-12-10 15:48:20 -0500
commit22f10923dd39141785273e423b9acf347297e15f (patch)
treecc1f19103817433a426b3e329d6326f5e9d8e8f7 /drivers/net/can
parent785c20a08bead1e58ad53f2dc324782da7a0c9ea (diff)
parent69204cf7eb9c5a72067ce6922d4699378251d053 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/ethernet/amd/xgbe/xgbe-desc.c drivers/net/ethernet/renesas/sh_eth.c Overlapping changes in both conflict cases. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/can')
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb.c14
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb_core.c20
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb_pro.c23
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb_pro.h48
4 files changed, 54 insertions, 51 deletions
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb.c b/drivers/net/can/usb/peak_usb/pcan_usb.c
index 925ab8ec9329..4e1659d07979 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb.c
@@ -316,7 +316,7 @@ static int pcan_usb_get_serial(struct peak_usb_device *dev, u32 *serial_number)
316 if (err) { 316 if (err) {
317 netdev_err(dev->netdev, "getting serial failure: %d\n", err); 317 netdev_err(dev->netdev, "getting serial failure: %d\n", err);
318 } else if (serial_number) { 318 } else if (serial_number) {
319 u32 tmp32; 319 __le32 tmp32;
320 320
321 memcpy(&tmp32, args, 4); 321 memcpy(&tmp32, args, 4);
322 *serial_number = le32_to_cpu(tmp32); 322 *serial_number = le32_to_cpu(tmp32);
@@ -347,7 +347,7 @@ static int pcan_usb_get_device_id(struct peak_usb_device *dev, u32 *device_id)
347 */ 347 */
348static int pcan_usb_update_ts(struct pcan_usb_msg_context *mc) 348static int pcan_usb_update_ts(struct pcan_usb_msg_context *mc)
349{ 349{
350 u16 tmp16; 350 __le16 tmp16;
351 351
352 if ((mc->ptr+2) > mc->end) 352 if ((mc->ptr+2) > mc->end)
353 return -EINVAL; 353 return -EINVAL;
@@ -371,7 +371,7 @@ static int pcan_usb_decode_ts(struct pcan_usb_msg_context *mc, u8 first_packet)
371{ 371{
372 /* only 1st packet supplies a word timestamp */ 372 /* only 1st packet supplies a word timestamp */
373 if (first_packet) { 373 if (first_packet) {
374 u16 tmp16; 374 __le16 tmp16;
375 375
376 if ((mc->ptr + 2) > mc->end) 376 if ((mc->ptr + 2) > mc->end)
377 return -EINVAL; 377 return -EINVAL;
@@ -614,7 +614,7 @@ static int pcan_usb_decode_data(struct pcan_usb_msg_context *mc, u8 status_len)
614 return -ENOMEM; 614 return -ENOMEM;
615 615
616 if (status_len & PCAN_USB_STATUSLEN_EXT_ID) { 616 if (status_len & PCAN_USB_STATUSLEN_EXT_ID) {
617 u32 tmp32; 617 __le32 tmp32;
618 618
619 if ((mc->ptr + 4) > mc->end) 619 if ((mc->ptr + 4) > mc->end)
620 goto decode_failed; 620 goto decode_failed;
@@ -622,9 +622,9 @@ static int pcan_usb_decode_data(struct pcan_usb_msg_context *mc, u8 status_len)
622 memcpy(&tmp32, mc->ptr, 4); 622 memcpy(&tmp32, mc->ptr, 4);
623 mc->ptr += 4; 623 mc->ptr += 4;
624 624
625 cf->can_id = le32_to_cpu(tmp32 >> 3) | CAN_EFF_FLAG; 625 cf->can_id = (le32_to_cpu(tmp32) >> 3) | CAN_EFF_FLAG;
626 } else { 626 } else {
627 u16 tmp16; 627 __le16 tmp16;
628 628
629 if ((mc->ptr + 2) > mc->end) 629 if ((mc->ptr + 2) > mc->end)
630 goto decode_failed; 630 goto decode_failed;
@@ -632,7 +632,7 @@ static int pcan_usb_decode_data(struct pcan_usb_msg_context *mc, u8 status_len)
632 memcpy(&tmp16, mc->ptr, 2); 632 memcpy(&tmp16, mc->ptr, 2);
633 mc->ptr += 2; 633 mc->ptr += 2;
634 634
635 cf->can_id = le16_to_cpu(tmp16 >> 5); 635 cf->can_id = le16_to_cpu(tmp16) >> 5;
636 } 636 }
637 637
638 cf->can_dlc = get_can_dlc(rec_len); 638 cf->can_dlc = get_can_dlc(rec_len);
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_core.c b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
index 644e6ab8a489..c62f48a1161d 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_core.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
@@ -735,7 +735,7 @@ static int peak_usb_create_dev(struct peak_usb_adapter *peak_usb_adapter,
735 dev->cmd_buf = kmalloc(PCAN_USB_MAX_CMD_LEN, GFP_KERNEL); 735 dev->cmd_buf = kmalloc(PCAN_USB_MAX_CMD_LEN, GFP_KERNEL);
736 if (!dev->cmd_buf) { 736 if (!dev->cmd_buf) {
737 err = -ENOMEM; 737 err = -ENOMEM;
738 goto lbl_set_intf_data; 738 goto lbl_free_candev;
739 } 739 }
740 740
741 dev->udev = usb_dev; 741 dev->udev = usb_dev;
@@ -775,7 +775,7 @@ static int peak_usb_create_dev(struct peak_usb_adapter *peak_usb_adapter,
775 err = register_candev(netdev); 775 err = register_candev(netdev);
776 if (err) { 776 if (err) {
777 dev_err(&intf->dev, "couldn't register CAN device: %d\n", err); 777 dev_err(&intf->dev, "couldn't register CAN device: %d\n", err);
778 goto lbl_free_cmd_buf; 778 goto lbl_restore_intf_data;
779 } 779 }
780 780
781 if (dev->prev_siblings) 781 if (dev->prev_siblings)
@@ -788,14 +788,14 @@ static int peak_usb_create_dev(struct peak_usb_adapter *peak_usb_adapter,
788 if (dev->adapter->dev_init) { 788 if (dev->adapter->dev_init) {
789 err = dev->adapter->dev_init(dev); 789 err = dev->adapter->dev_init(dev);
790 if (err) 790 if (err)
791 goto lbl_free_cmd_buf; 791 goto lbl_unregister_candev;
792 } 792 }
793 793
794 /* set bus off */ 794 /* set bus off */
795 if (dev->adapter->dev_set_bus) { 795 if (dev->adapter->dev_set_bus) {
796 err = dev->adapter->dev_set_bus(dev, 0); 796 err = dev->adapter->dev_set_bus(dev, 0);
797 if (err) 797 if (err)
798 goto lbl_free_cmd_buf; 798 goto lbl_unregister_candev;
799 } 799 }
800 800
801 /* get device number early */ 801 /* get device number early */
@@ -807,11 +807,14 @@ static int peak_usb_create_dev(struct peak_usb_adapter *peak_usb_adapter,
807 807
808 return 0; 808 return 0;
809 809
810lbl_free_cmd_buf: 810lbl_unregister_candev:
811 kfree(dev->cmd_buf); 811 unregister_candev(netdev);
812 812
813lbl_set_intf_data: 813lbl_restore_intf_data:
814 usb_set_intfdata(intf, dev->prev_siblings); 814 usb_set_intfdata(intf, dev->prev_siblings);
815 kfree(dev->cmd_buf);
816
817lbl_free_candev:
815 free_candev(netdev); 818 free_candev(netdev);
816 819
817 return err; 820 return err;
@@ -853,6 +856,7 @@ static int peak_usb_probe(struct usb_interface *intf,
853 const struct usb_device_id *id) 856 const struct usb_device_id *id)
854{ 857{
855 struct usb_device *usb_dev = interface_to_usbdev(intf); 858 struct usb_device *usb_dev = interface_to_usbdev(intf);
859 const u16 usb_id_product = le16_to_cpu(usb_dev->descriptor.idProduct);
856 struct peak_usb_adapter *peak_usb_adapter, **pp; 860 struct peak_usb_adapter *peak_usb_adapter, **pp;
857 int i, err = -ENOMEM; 861 int i, err = -ENOMEM;
858 862
@@ -860,7 +864,7 @@ static int peak_usb_probe(struct usb_interface *intf,
860 864
861 /* get corresponding PCAN-USB adapter */ 865 /* get corresponding PCAN-USB adapter */
862 for (pp = peak_usb_adapters_list; *pp; pp++) 866 for (pp = peak_usb_adapters_list; *pp; pp++)
863 if ((*pp)->device_id == usb_dev->descriptor.idProduct) 867 if ((*pp)->device_id == usb_id_product)
864 break; 868 break;
865 869
866 peak_usb_adapter = *pp; 870 peak_usb_adapter = *pp;
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_pro.c b/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
index 263dd921edc4..4cfa3b8605b1 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
@@ -78,8 +78,8 @@ struct pcan_usb_pro_msg {
78 int rec_buffer_size; 78 int rec_buffer_size;
79 int rec_buffer_len; 79 int rec_buffer_len;
80 union { 80 union {
81 u16 *rec_cnt_rd; 81 __le16 *rec_cnt_rd;
82 u32 *rec_cnt; 82 __le32 *rec_cnt;
83 u8 *rec_buffer; 83 u8 *rec_buffer;
84 } u; 84 } u;
85}; 85};
@@ -155,7 +155,7 @@ static int pcan_msg_add_rec(struct pcan_usb_pro_msg *pm, u8 id, ...)
155 *pc++ = va_arg(ap, int); 155 *pc++ = va_arg(ap, int);
156 *pc++ = va_arg(ap, int); 156 *pc++ = va_arg(ap, int);
157 *pc++ = va_arg(ap, int); 157 *pc++ = va_arg(ap, int);
158 *(u32 *)pc = cpu_to_le32(va_arg(ap, u32)); 158 *(__le32 *)pc = cpu_to_le32(va_arg(ap, u32));
159 pc += 4; 159 pc += 4;
160 memcpy(pc, va_arg(ap, int *), i); 160 memcpy(pc, va_arg(ap, int *), i);
161 pc += i; 161 pc += i;
@@ -165,7 +165,7 @@ static int pcan_msg_add_rec(struct pcan_usb_pro_msg *pm, u8 id, ...)
165 case PCAN_USBPRO_GETDEVID: 165 case PCAN_USBPRO_GETDEVID:
166 *pc++ = va_arg(ap, int); 166 *pc++ = va_arg(ap, int);
167 pc += 2; 167 pc += 2;
168 *(u32 *)pc = cpu_to_le32(va_arg(ap, u32)); 168 *(__le32 *)pc = cpu_to_le32(va_arg(ap, u32));
169 pc += 4; 169 pc += 4;
170 break; 170 break;
171 171
@@ -173,21 +173,21 @@ static int pcan_msg_add_rec(struct pcan_usb_pro_msg *pm, u8 id, ...)
173 case PCAN_USBPRO_SETBUSACT: 173 case PCAN_USBPRO_SETBUSACT:
174 case PCAN_USBPRO_SETSILENT: 174 case PCAN_USBPRO_SETSILENT:
175 *pc++ = va_arg(ap, int); 175 *pc++ = va_arg(ap, int);
176 *(u16 *)pc = cpu_to_le16(va_arg(ap, int)); 176 *(__le16 *)pc = cpu_to_le16(va_arg(ap, int));
177 pc += 2; 177 pc += 2;
178 break; 178 break;
179 179
180 case PCAN_USBPRO_SETLED: 180 case PCAN_USBPRO_SETLED:
181 *pc++ = va_arg(ap, int); 181 *pc++ = va_arg(ap, int);
182 *(u16 *)pc = cpu_to_le16(va_arg(ap, int)); 182 *(__le16 *)pc = cpu_to_le16(va_arg(ap, int));
183 pc += 2; 183 pc += 2;
184 *(u32 *)pc = cpu_to_le32(va_arg(ap, u32)); 184 *(__le32 *)pc = cpu_to_le32(va_arg(ap, u32));
185 pc += 4; 185 pc += 4;
186 break; 186 break;
187 187
188 case PCAN_USBPRO_SETTS: 188 case PCAN_USBPRO_SETTS:
189 pc++; 189 pc++;
190 *(u16 *)pc = cpu_to_le16(va_arg(ap, int)); 190 *(__le16 *)pc = cpu_to_le16(va_arg(ap, int));
191 pc += 2; 191 pc += 2;
192 break; 192 break;
193 193
@@ -200,7 +200,7 @@ static int pcan_msg_add_rec(struct pcan_usb_pro_msg *pm, u8 id, ...)
200 200
201 len = pc - pm->rec_ptr; 201 len = pc - pm->rec_ptr;
202 if (len > 0) { 202 if (len > 0) {
203 *pm->u.rec_cnt = cpu_to_le32(*pm->u.rec_cnt+1); 203 *pm->u.rec_cnt = cpu_to_le32(le32_to_cpu(*pm->u.rec_cnt) + 1);
204 *pm->rec_ptr = id; 204 *pm->rec_ptr = id;
205 205
206 pm->rec_ptr = pc; 206 pm->rec_ptr = pc;
@@ -333,8 +333,6 @@ static int pcan_usb_pro_send_req(struct peak_usb_device *dev, int req_id,
333 if (!(dev->state & PCAN_USB_STATE_CONNECTED)) 333 if (!(dev->state & PCAN_USB_STATE_CONNECTED))
334 return 0; 334 return 0;
335 335
336 memset(req_addr, '\0', req_size);
337
338 req_type = USB_TYPE_VENDOR | USB_RECIP_OTHER; 336 req_type = USB_TYPE_VENDOR | USB_RECIP_OTHER;
339 337
340 switch (req_id) { 338 switch (req_id) {
@@ -345,6 +343,7 @@ static int pcan_usb_pro_send_req(struct peak_usb_device *dev, int req_id,
345 default: 343 default:
346 p = usb_rcvctrlpipe(dev->udev, 0); 344 p = usb_rcvctrlpipe(dev->udev, 0);
347 req_type |= USB_DIR_IN; 345 req_type |= USB_DIR_IN;
346 memset(req_addr, '\0', req_size);
348 break; 347 break;
349 } 348 }
350 349
@@ -572,7 +571,7 @@ static int pcan_usb_pro_handle_canmsg(struct pcan_usb_pro_interface *usb_if,
572static int pcan_usb_pro_handle_error(struct pcan_usb_pro_interface *usb_if, 571static int pcan_usb_pro_handle_error(struct pcan_usb_pro_interface *usb_if,
573 struct pcan_usb_pro_rxstatus *er) 572 struct pcan_usb_pro_rxstatus *er)
574{ 573{
575 const u32 raw_status = le32_to_cpu(er->status); 574 const u16 raw_status = le16_to_cpu(er->status);
576 const unsigned int ctrl_idx = (er->channel >> 4) & 0x0f; 575 const unsigned int ctrl_idx = (er->channel >> 4) & 0x0f;
577 struct peak_usb_device *dev = usb_if->dev[ctrl_idx]; 576 struct peak_usb_device *dev = usb_if->dev[ctrl_idx];
578 struct net_device *netdev = dev->netdev; 577 struct net_device *netdev = dev->netdev;
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_pro.h b/drivers/net/can/usb/peak_usb/pcan_usb_pro.h
index 32275af547e0..837cee267132 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_pro.h
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_pro.h
@@ -33,27 +33,27 @@
33 33
34/* PCAN_USBPRO_INFO_BL vendor request record type */ 34/* PCAN_USBPRO_INFO_BL vendor request record type */
35struct __packed pcan_usb_pro_blinfo { 35struct __packed pcan_usb_pro_blinfo {
36 u32 ctrl_type; 36 __le32 ctrl_type;
37 u8 version[4]; 37 u8 version[4];
38 u8 day; 38 u8 day;
39 u8 month; 39 u8 month;
40 u8 year; 40 u8 year;
41 u8 dummy; 41 u8 dummy;
42 u32 serial_num_hi; 42 __le32 serial_num_hi;
43 u32 serial_num_lo; 43 __le32 serial_num_lo;
44 u32 hw_type; 44 __le32 hw_type;
45 u32 hw_rev; 45 __le32 hw_rev;
46}; 46};
47 47
48/* PCAN_USBPRO_INFO_FW vendor request record type */ 48/* PCAN_USBPRO_INFO_FW vendor request record type */
49struct __packed pcan_usb_pro_fwinfo { 49struct __packed pcan_usb_pro_fwinfo {
50 u32 ctrl_type; 50 __le32 ctrl_type;
51 u8 version[4]; 51 u8 version[4];
52 u8 day; 52 u8 day;
53 u8 month; 53 u8 month;
54 u8 year; 54 u8 year;
55 u8 dummy; 55 u8 dummy;
56 u32 fw_type; 56 __le32 fw_type;
57}; 57};
58 58
59/* 59/*
@@ -80,46 +80,46 @@ struct __packed pcan_usb_pro_fwinfo {
80struct __packed pcan_usb_pro_btr { 80struct __packed pcan_usb_pro_btr {
81 u8 data_type; 81 u8 data_type;
82 u8 channel; 82 u8 channel;
83 u16 dummy; 83 __le16 dummy;
84 u32 CCBT; 84 __le32 CCBT;
85}; 85};
86 86
87struct __packed pcan_usb_pro_busact { 87struct __packed pcan_usb_pro_busact {
88 u8 data_type; 88 u8 data_type;
89 u8 channel; 89 u8 channel;
90 u16 onoff; 90 __le16 onoff;
91}; 91};
92 92
93struct __packed pcan_usb_pro_silent { 93struct __packed pcan_usb_pro_silent {
94 u8 data_type; 94 u8 data_type;
95 u8 channel; 95 u8 channel;
96 u16 onoff; 96 __le16 onoff;
97}; 97};
98 98
99struct __packed pcan_usb_pro_filter { 99struct __packed pcan_usb_pro_filter {
100 u8 data_type; 100 u8 data_type;
101 u8 dummy; 101 u8 dummy;
102 u16 filter_mode; 102 __le16 filter_mode;
103}; 103};
104 104
105struct __packed pcan_usb_pro_setts { 105struct __packed pcan_usb_pro_setts {
106 u8 data_type; 106 u8 data_type;
107 u8 dummy; 107 u8 dummy;
108 u16 mode; 108 __le16 mode;
109}; 109};
110 110
111struct __packed pcan_usb_pro_devid { 111struct __packed pcan_usb_pro_devid {
112 u8 data_type; 112 u8 data_type;
113 u8 channel; 113 u8 channel;
114 u16 dummy; 114 __le16 dummy;
115 u32 serial_num; 115 __le32 serial_num;
116}; 116};
117 117
118struct __packed pcan_usb_pro_setled { 118struct __packed pcan_usb_pro_setled {
119 u8 data_type; 119 u8 data_type;
120 u8 channel; 120 u8 channel;
121 u16 mode; 121 __le16 mode;
122 u32 timeout; 122 __le32 timeout;
123}; 123};
124 124
125struct __packed pcan_usb_pro_rxmsg { 125struct __packed pcan_usb_pro_rxmsg {
@@ -127,8 +127,8 @@ struct __packed pcan_usb_pro_rxmsg {
127 u8 client; 127 u8 client;
128 u8 flags; 128 u8 flags;
129 u8 len; 129 u8 len;
130 u32 ts32; 130 __le32 ts32;
131 u32 id; 131 __le32 id;
132 132
133 u8 data[8]; 133 u8 data[8];
134}; 134};
@@ -141,15 +141,15 @@ struct __packed pcan_usb_pro_rxmsg {
141struct __packed pcan_usb_pro_rxstatus { 141struct __packed pcan_usb_pro_rxstatus {
142 u8 data_type; 142 u8 data_type;
143 u8 channel; 143 u8 channel;
144 u16 status; 144 __le16 status;
145 u32 ts32; 145 __le32 ts32;
146 u32 err_frm; 146 __le32 err_frm;
147}; 147};
148 148
149struct __packed pcan_usb_pro_rxts { 149struct __packed pcan_usb_pro_rxts {
150 u8 data_type; 150 u8 data_type;
151 u8 dummy[3]; 151 u8 dummy[3];
152 u32 ts64[2]; 152 __le32 ts64[2];
153}; 153};
154 154
155struct __packed pcan_usb_pro_txmsg { 155struct __packed pcan_usb_pro_txmsg {
@@ -157,7 +157,7 @@ struct __packed pcan_usb_pro_txmsg {
157 u8 client; 157 u8 client;
158 u8 flags; 158 u8 flags;
159 u8 len; 159 u8 len;
160 u32 id; 160 __le32 id;
161 u8 data[8]; 161 u8 data[8];
162}; 162};
163 163