|
@@ -85,26 +85,21 @@ MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
|
|
|
static int __must_check smsc75xx_read_reg(struct usbnet *dev, u32 index,
|
|
|
u32 *data)
|
|
|
{
|
|
|
- u32 *buf = kmalloc(4, GFP_KERNEL);
|
|
|
+ u32 buf;
|
|
|
int ret;
|
|
|
|
|
|
BUG_ON(!dev);
|
|
|
|
|
|
- if (!buf)
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0),
|
|
|
- USB_VENDOR_REQUEST_READ_REGISTER,
|
|
|
- USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
|
|
|
- 00, index, buf, 4, USB_CTRL_GET_TIMEOUT);
|
|
|
-
|
|
|
+ ret = usbnet_read_cmd(dev, USB_VENDOR_REQUEST_READ_REGISTER,
|
|
|
+ USB_DIR_IN | USB_TYPE_VENDOR |
|
|
|
+ USB_RECIP_DEVICE,
|
|
|
+ 0, index, &buf, 4);
|
|
|
if (unlikely(ret < 0))
|
|
|
netdev_warn(dev->net,
|
|
|
"Failed to read reg index 0x%08x: %d", index, ret);
|
|
|
|
|
|
- le32_to_cpus(buf);
|
|
|
- *data = *buf;
|
|
|
- kfree(buf);
|
|
|
+ le32_to_cpus(&buf);
|
|
|
+ *data = buf;
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -112,28 +107,22 @@ static int __must_check smsc75xx_read_reg(struct usbnet *dev, u32 index,
|
|
|
static int __must_check smsc75xx_write_reg(struct usbnet *dev, u32 index,
|
|
|
u32 data)
|
|
|
{
|
|
|
- u32 *buf = kmalloc(4, GFP_KERNEL);
|
|
|
+ u32 buf;
|
|
|
int ret;
|
|
|
|
|
|
BUG_ON(!dev);
|
|
|
|
|
|
- if (!buf)
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- *buf = data;
|
|
|
- cpu_to_le32s(buf);
|
|
|
-
|
|
|
- ret = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
|
|
|
- USB_VENDOR_REQUEST_WRITE_REGISTER,
|
|
|
- USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
|
|
|
- 00, index, buf, 4, USB_CTRL_SET_TIMEOUT);
|
|
|
+ buf = data;
|
|
|
+ cpu_to_le32s(&buf);
|
|
|
|
|
|
+ ret = usbnet_write_cmd(dev, USB_VENDOR_REQUEST_WRITE_REGISTER,
|
|
|
+ USB_DIR_OUT | USB_TYPE_VENDOR |
|
|
|
+ USB_RECIP_DEVICE,
|
|
|
+ 0, index, &buf, 4);
|
|
|
if (unlikely(ret < 0))
|
|
|
netdev_warn(dev->net,
|
|
|
"Failed to write reg index 0x%08x: %d", index, ret);
|
|
|
|
|
|
- kfree(buf);
|
|
|
-
|
|
|
return ret;
|
|
|
}
|
|
|
|