9 #define pr_fmt(fmt) KBUILD_MODNAME ":%s(): " fmt, __func__
11 #include <linux/module.h>
12 #include <linux/netdevice.h>
13 #include <linux/slab.h>
14 #include <linux/mii.h>
25 #define CFUSB_PAD_DESCR_SZ 1
26 #define CFUSB_ALIGNMENT 4
27 #define CFUSB_MAX_HEADLEN (CFUSB_PAD_DESCR_SZ + CFUSB_ALIGNMENT-1)
28 #define STE_USB_VID 0x04cc
29 #define STE_USB_PID_CAIF 0x230f
36 static bool pack_added;
38 static int cfusbl_receive(
struct cflayer *layr,
struct cfpkt *pkt)
45 return layr->
up->receive(layr->
up, pkt);
48 static int cfusbl_transmit(
struct cflayer *layr,
struct cfpkt *pkt)
58 skb_reset_network_header(skb);
74 return layr->
dn->transmit(layr->
dn, pkt);
80 if (layr->
up && layr->
up->ctrlcmd)
81 layr->
up->ctrlcmd(layr->
up, ctrl, layr->
id);
96 this->
layer.receive = cfusbl_receive;
97 this->
layer.transmit = cfusbl_transmit;
98 this->
layer.ctrlcmd = cfusbl_ctrlcmd;
100 this->
layer.id = phyid;
112 pr_debug(
"caif ethernet TX-header dst:%pM src:%pM type:%02x%02x\n",
116 return (
struct cflayer *)
this;
128 struct cflayer *layer, *link_support;
130 struct usb_device *usbdev = usbnet->
udev;
141 if (
strncmp(drvinfo.driver,
"cdc_ncm", 7) != 0)
144 pr_debug(
"USB CDC NCM device VID:0x%4x PID:0x%4x\n",
175 pr_warn(
"USB device uses more than one tx queue\n");
178 &layer, &caif_usb_type.func);
184 sizeof(layer->
name) - 1);
185 layer->
name[
sizeof(layer->
name) - 1] = 0;
191 .notifier_call = cfusbl_device_notify,
195 static int __init cfusbl_init(
void)
200 static void __exit cfusbl_exit(
void)