Skip to content

Commit 0812e7d

Browse files
LorenzoBianconigregkh
authored andcommitted
mt76: mt76u: rely on usb_interface instead of usb_dev
[ Upstream commit 80df01f ] usb drivers are supposed to communicate using usb_interface instead mt76x{0,2}u is now registering through usb_device. Fix it by passing usb_intf device to mt76_alloc_device routine. Fixes: 112f980 ("mt76usb: use usb_dev private data") Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Tested-By: Zero_Chaos <sidhayn@gmail.com> Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 0e9619f commit 0812e7d

4 files changed

Lines changed: 13 additions & 6 deletions

File tree

drivers/net/wireless/mediatek/mt76/mt76.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,8 @@ static inline int
799799
mt76u_bulk_msg(struct mt76_dev *dev, void *data, int len, int *actual_len,
800800
int timeout)
801801
{
802-
struct usb_device *udev = to_usb_device(dev->dev);
802+
struct usb_interface *uintf = to_usb_interface(dev->dev);
803+
struct usb_device *udev = interface_to_usbdev(uintf);
803804
struct mt76_usb *usb = &dev->usb;
804805
unsigned int pipe;
805806

drivers/net/wireless/mediatek/mt76/mt76x0/usb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ static int mt76x0u_probe(struct usb_interface *usb_intf,
226226
u32 mac_rev;
227227
int ret;
228228

229-
mdev = mt76_alloc_device(&usb_dev->dev, sizeof(*dev), &mt76x0u_ops,
229+
mdev = mt76_alloc_device(&usb_intf->dev, sizeof(*dev), &mt76x0u_ops,
230230
&drv_ops);
231231
if (!mdev)
232232
return -ENOMEM;

drivers/net/wireless/mediatek/mt76/mt76x2/usb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ static int mt76x2u_probe(struct usb_interface *intf,
3939
struct mt76_dev *mdev;
4040
int err;
4141

42-
mdev = mt76_alloc_device(&udev->dev, sizeof(*dev), &mt76x2u_ops,
42+
mdev = mt76_alloc_device(&intf->dev, sizeof(*dev), &mt76x2u_ops,
4343
&drv_ops);
4444
if (!mdev)
4545
return -ENOMEM;

drivers/net/wireless/mediatek/mt76/usb.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ static int __mt76u_vendor_request(struct mt76_dev *dev, u8 req,
2020
u8 req_type, u16 val, u16 offset,
2121
void *buf, size_t len)
2222
{
23-
struct usb_device *udev = to_usb_device(dev->dev);
23+
struct usb_interface *uintf = to_usb_interface(dev->dev);
24+
struct usb_device *udev = interface_to_usbdev(uintf);
2425
unsigned int pipe;
2526
int i, ret;
2627

@@ -235,7 +236,8 @@ mt76u_rd_rp(struct mt76_dev *dev, u32 base,
235236

236237
static bool mt76u_check_sg(struct mt76_dev *dev)
237238
{
238-
struct usb_device *udev = to_usb_device(dev->dev);
239+
struct usb_interface *uintf = to_usb_interface(dev->dev);
240+
struct usb_device *udev = interface_to_usbdev(uintf);
239241

240242
return (!disable_usb_sg && udev->bus->sg_tablesize > 0 &&
241243
(udev->bus->no_sg_constraint ||
@@ -370,7 +372,8 @@ mt76u_fill_bulk_urb(struct mt76_dev *dev, int dir, int index,
370372
struct urb *urb, usb_complete_t complete_fn,
371373
void *context)
372374
{
373-
struct usb_device *udev = to_usb_device(dev->dev);
375+
struct usb_interface *uintf = to_usb_interface(dev->dev);
376+
struct usb_device *udev = interface_to_usbdev(uintf);
374377
unsigned int pipe;
375378

376379
if (dir == USB_DIR_IN)
@@ -952,6 +955,7 @@ int mt76u_init(struct mt76_dev *dev,
952955
.rd_rp = mt76u_rd_rp,
953956
.type = MT76_BUS_USB,
954957
};
958+
struct usb_device *udev = interface_to_usbdev(intf);
955959
struct mt76_usb *usb = &dev->usb;
956960

957961
tasklet_init(&usb->rx_tasklet, mt76u_rx_tasklet, (unsigned long)dev);
@@ -965,6 +969,8 @@ int mt76u_init(struct mt76_dev *dev,
965969
dev->bus = &mt76u_ops;
966970
dev->queue_ops = &usb_queue_ops;
967971

972+
dev_set_drvdata(&udev->dev, dev);
973+
968974
usb->sg_en = mt76u_check_sg(dev);
969975

970976
return mt76u_set_endpoints(intf, usb);

0 commit comments

Comments
 (0)