Lines Matching refs:dev

193 static inline struct sierra_net_data *sierra_net_get_private(struct usbnet *dev)  in sierra_net_get_private()  argument
195 return (struct sierra_net_data *)dev->data[0]; in sierra_net_get_private()
199 static inline void sierra_net_set_private(struct usbnet *dev, in sierra_net_set_private() argument
202 dev->data[0] = (unsigned long)priv; in sierra_net_set_private()
217 static int check_ethip_packet(struct sk_buff *skb, struct usbnet *dev) in check_ethip_packet() argument
222 netdev_err(dev->net, "Non linear buffer-dropping\n"); in check_ethip_packet()
319 static int sierra_net_send_cmd(struct usbnet *dev, in sierra_net_send_cmd() argument
322 struct sierra_net_data *priv = sierra_net_get_private(dev); in sierra_net_send_cmd()
325 status = usbnet_write_cmd(dev, USB_CDC_SEND_ENCAPSULATED_COMMAND, in sierra_net_send_cmd()
330 netdev_err(dev->net, "Submit %s failed %d\n", cmd_name, status); in sierra_net_send_cmd()
335 static int sierra_net_send_sync(struct usbnet *dev) in sierra_net_send_sync() argument
338 struct sierra_net_data *priv = sierra_net_get_private(dev); in sierra_net_send_sync()
340 dev_dbg(&dev->udev->dev, "%s", __func__); in sierra_net_send_sync()
342 status = sierra_net_send_cmd(dev, priv->sync_msg, in sierra_net_send_sync()
350 dev_dbg(&(priv->usbnet->udev->dev), "%s %d", __func__, ctx_ix); in sierra_net_set_ctx_index()
357 static int sierra_net_parse_lsi(struct usbnet *dev, char *data, int datalen) in sierra_net_parse_lsi() argument
363 netdev_err(dev->net, "%s: Data length %d, exp >= %zu\n", in sierra_net_parse_lsi()
370 netdev_err(dev->net, "Session idle, 0x%02x\n", in sierra_net_parse_lsi()
382 netdev_err(dev->net, "Link type unsupported: 0x%02x\n", in sierra_net_parse_lsi()
390 netdev_err(dev->net, "Protocol unsupported, 0x%02x\n", in sierra_net_parse_lsi()
396 netdev_err(dev->net, "%s: LSI_UMTS_STATUS_LEN %d, exp %u\n", in sierra_net_parse_lsi()
404 netdev_err(dev->net, "No coverage, 0x%02x\n", lsi->coverage); in sierra_net_parse_lsi()
412 static void sierra_net_handle_lsi(struct usbnet *dev, char *data, in sierra_net_handle_lsi() argument
415 struct sierra_net_data *priv = sierra_net_get_private(dev); in sierra_net_handle_lsi()
418 link_up = sierra_net_parse_lsi(dev, data + hh->hdrlen, in sierra_net_handle_lsi()
421 netdev_err(dev->net, "Invalid LSI\n"); in sierra_net_handle_lsi()
430 usbnet_link_change(dev, link_up, 0); in sierra_net_handle_lsi()
433 static void sierra_net_dosync(struct usbnet *dev) in sierra_net_dosync() argument
436 struct sierra_net_data *priv = sierra_net_get_private(dev); in sierra_net_dosync()
438 dev_dbg(&dev->udev->dev, "%s", __func__); in sierra_net_dosync()
448 status = sierra_net_send_sync(dev); in sierra_net_dosync()
450 netdev_err(dev->net, in sierra_net_dosync()
452 status = sierra_net_send_sync(dev); in sierra_net_dosync()
454 netdev_err(dev->net, in sierra_net_dosync()
466 struct usbnet *dev = priv->usbnet; in sierra_net_kevent() local
481 len = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), in sierra_net_kevent()
488 netdev_err(dev->net, in sierra_net_kevent()
493 dev_dbg(&dev->udev->dev, "%s: Received status message," in sierra_net_kevent()
498 netdev_err(dev->net, "%s: Bad packet," in sierra_net_kevent()
506 netdev_err(dev->net, "%s: Bad packet, received" in sierra_net_kevent()
516 dev_dbg(&dev->udev->dev, "LSI for ctx:%d", in sierra_net_kevent()
518 sierra_net_handle_lsi(dev, buf, &hh); in sierra_net_kevent()
521 dev_dbg(&dev->udev->dev, "Restart reported: %d," in sierra_net_kevent()
530 dev_dbg(&dev->udev->dev, "SYNC received"); in sierra_net_kevent()
531 err = sierra_net_send_sync(dev); in sierra_net_kevent()
533 netdev_err(dev->net, in sierra_net_kevent()
537 netdev_err(dev->net, "Unrecognized HIP msg, " in sierra_net_kevent()
544 netdev_err(dev->net, "Unrecognized HIP msg, " in sierra_net_kevent()
554 dev_dbg(&dev->udev->dev, "Deferred sync timer expiry"); in sierra_net_kevent()
559 dev_dbg(&dev->udev->dev, "sierra_net_kevent done, " in sierra_net_kevent()
563 static void sierra_net_defer_kevent(struct usbnet *dev, int work) in sierra_net_defer_kevent() argument
565 struct sierra_net_data *priv = sierra_net_get_private(dev); in sierra_net_defer_kevent()
577 struct usbnet *dev = priv->usbnet; in sierra_sync_timer() local
579 dev_dbg(&dev->udev->dev, "%s", __func__); in sierra_sync_timer()
581 sierra_net_defer_kevent(dev, SIERRA_NET_TIMER_EXPIRY); in sierra_sync_timer()
584 static void sierra_net_status(struct usbnet *dev, struct urb *urb) in sierra_net_status() argument
588 dev_dbg(&dev->udev->dev, "%s", __func__); in sierra_net_status()
601 sierra_net_defer_kevent(dev, SIERRA_NET_EVENT_RESP_AVAIL); in sierra_net_status()
604 netdev_err(dev->net, ": unexpected notification %02x!\n", in sierra_net_status()
621 struct usbnet *dev = netdev_priv(net); in sierra_net_get_link() local
623 return sierra_net_get_private(dev)->link_up && netif_running(net); in sierra_net_get_link()
636 static int sierra_net_get_fw_attr(struct usbnet *dev, u16 *datap) in sierra_net_get_fw_attr() argument
641 result = usbnet_read_cmd(dev, in sierra_net_get_fw_attr()
661 static int sierra_net_bind(struct usbnet *dev, struct usb_interface *intf) in sierra_net_bind() argument
674 dev_dbg(&dev->udev->dev, "%s", __func__); in sierra_net_bind()
680 dev_err(&dev->udev->dev, "Expected 3 endpoints, found: %d", in sierra_net_bind()
685 dev->status = NULL; in sierra_net_bind()
686 status = usbnet_get_endpoints(dev, intf); in sierra_net_bind()
688 dev_err(&dev->udev->dev, "Error in usbnet_get_endpoints (%d)", in sierra_net_bind()
697 priv->usbnet = dev; in sierra_net_bind()
699 dev->net->netdev_ops = &sierra_net_device_ops; in sierra_net_bind()
704 dev_addr_mod(dev->net, ETH_ALEN - 2, mod, 2); in sierra_net_bind()
715 dev->rx_urb_size = SIERRA_NET_RX_URB_SIZE; in sierra_net_bind()
716 if (dev->udev->speed != USB_SPEED_HIGH) in sierra_net_bind()
717 dev->rx_urb_size = min_t(size_t, 4096, SIERRA_NET_RX_URB_SIZE); in sierra_net_bind()
719 dev->net->hard_header_len += SIERRA_NET_HIP_EXT_HDR_LEN; in sierra_net_bind()
720 dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len; in sierra_net_bind()
721 dev->net->max_mtu = SIERRA_NET_MAX_SUPPORTED_MTU; in sierra_net_bind()
724 dev->net->flags |= IFF_NOARP; in sierra_net_bind()
725 dev->net->ethtool_ops = &sierra_net_ethtool_ops; in sierra_net_bind()
726 netif_carrier_off(dev->net); in sierra_net_bind()
728 sierra_net_set_private(dev, priv); in sierra_net_bind()
739 status = sierra_net_get_fw_attr(dev, &fwattr); in sierra_net_bind()
740 dev_dbg(&dev->udev->dev, "Fw attr: %x\n", fwattr); in sierra_net_bind()
745 dev_err(&dev->udev->dev, "Incompatible driver and firmware" in sierra_net_bind()
754 static void sierra_net_unbind(struct usbnet *dev, struct usb_interface *intf) in sierra_net_unbind() argument
757 struct sierra_net_data *priv = sierra_net_get_private(dev); in sierra_net_unbind()
759 dev_dbg(&dev->udev->dev, "%s", __func__); in sierra_net_unbind()
766 status = sierra_net_send_cmd(dev, priv->shdwn_msg, in sierra_net_unbind()
769 netdev_err(dev->net, in sierra_net_unbind()
772 usbnet_status_stop(dev); in sierra_net_unbind()
774 sierra_net_set_private(dev, NULL); in sierra_net_unbind()
778 static struct sk_buff *sierra_net_skb_clone(struct usbnet *dev, in sierra_net_skb_clone() argument
793 if (netif_msg_rx_err(dev)) in sierra_net_skb_clone()
794 netdev_err(dev->net, "failed to get skb\n"); in sierra_net_skb_clone()
795 dev->net->stats.rx_dropped++; in sierra_net_skb_clone()
802 static int sierra_net_rx_fixup(struct usbnet *dev, struct sk_buff *skb) in sierra_net_rx_fixup() argument
808 dev_dbg(&dev->udev->dev, "%s", __func__); in sierra_net_rx_fixup()
814 if (netif_msg_rx_err(dev)) in sierra_net_rx_fixup()
815 netdev_err(dev->net, "Invalid HIP header %d\n", in sierra_net_rx_fixup()
818 dev->net->stats.rx_length_errors++; in sierra_net_rx_fixup()
825 if (netif_msg_rx_err(dev)) in sierra_net_rx_fixup()
826 netdev_err(dev->net, "HIP/ETH: Invalid pkt\n"); in sierra_net_rx_fixup()
828 dev->net->stats.rx_frame_errors++; in sierra_net_rx_fixup()
842 memcpy(eth_hdr(skb)->h_dest, dev->net->dev_addr, ETH_ALEN); in sierra_net_rx_fixup()
848 new_skb = sierra_net_skb_clone(dev, skb, hh.payload_len.word); in sierra_net_rx_fixup()
850 usbnet_skb_return(dev, new_skb); in sierra_net_rx_fixup()
858 static struct sk_buff *sierra_net_tx_fixup(struct usbnet *dev, in sierra_net_tx_fixup() argument
861 struct sierra_net_data *priv = sierra_net_get_private(dev); in sierra_net_tx_fixup()
868 dev_dbg(&dev->udev->dev, "%s", __func__); in sierra_net_tx_fixup()
869 if (priv->link_up && check_ethip_packet(skb, dev) && is_ip(skb)) { in sierra_net_tx_fixup()
877 % dev->maxpacket == 0); in sierra_net_tx_fixup()
880 netdev_err(dev->net, "tx_fixup:" in sierra_net_tx_fixup()
896 netdev_err(dev->net, "tx_fixup: no room for HIP\n"); in sierra_net_tx_fixup()
901 dev->net->stats.tx_carrier_errors++; in sierra_net_tx_fixup()
927 struct usbnet *dev = usb_get_intfdata(udev); in sierra_net_probe() local
929 ret = usbnet_status_start(dev, GFP_KERNEL); in sierra_net_probe()
932 sierra_net_dosync(dev); in sierra_net_probe()