Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] em28xx: don't store usb_device at struct em28xx

Now that we're storing usb_interface at em28xx struct,
there's no good reason to keep storing usb_device, as we can
get it from usb_interface. So, get rid of it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>

authored by

Mauro Carvalho Chehab and committed by
Mauro Carvalho Chehab
c6d48134 29b05e22

+52 -37
+14 -9
drivers/media/usb/em28xx/em28xx-audio.c
··· 279 279 280 280 if (dev->adev.users == 0) { 281 281 if (dev->alt == 0 || dev->is_audio_only) { 282 + struct usb_device *udev = interface_to_usbdev(dev->intf); 283 + 282 284 if (dev->is_audio_only) 283 285 /* audio is on a separate interface */ 284 286 dev->alt = 1; ··· 298 296 */ 299 297 dprintk("changing alternate number on interface %d to %d\n", 300 298 dev->ifnum, dev->alt); 301 - usb_set_interface(dev->udev, dev->ifnum, dev->alt); 299 + usb_set_interface(udev, dev->ifnum, dev->alt); 302 300 } 303 301 304 302 /* Sets volume, mute, etc */ ··· 716 714 717 715 static void em28xx_audio_free_urb(struct em28xx *dev) 718 716 { 717 + struct usb_device *udev = interface_to_usbdev(dev->intf); 719 718 int i; 720 719 721 720 for (i = 0; i < dev->adev.num_urb; i++) { ··· 725 722 if (!urb) 726 723 continue; 727 724 728 - usb_free_coherent(dev->udev, urb->transfer_buffer_length, 725 + usb_free_coherent(udev, urb->transfer_buffer_length, 729 726 dev->adev.transfer_buffer[i], 730 727 urb->transfer_dma); 731 728 ··· 752 749 { 753 750 struct usb_interface *intf; 754 751 struct usb_endpoint_descriptor *e, *ep = NULL; 752 + struct usb_device *udev = interface_to_usbdev(dev->intf); 755 753 int i, ep_size, interval, num_urb, npackets; 756 754 int urb_size, bytes_per_transfer; 757 755 u8 alt; ··· 762 758 else 763 759 alt = 7; 764 760 765 - intf = usb_ifnum_to_if(dev->udev, dev->ifnum); 761 + intf = usb_ifnum_to_if(udev, dev->ifnum); 766 762 767 763 if (intf->num_altsetting <= alt) { 768 764 dev_err(&dev->intf->dev, "alt %d doesn't exist on interface %d\n", ··· 785 781 return -ENODEV; 786 782 } 787 783 788 - ep_size = em28xx_audio_ep_packet_size(dev->udev, ep); 784 + ep_size = em28xx_audio_ep_packet_size(udev, ep); 789 785 interval = 1 << (ep->bInterval - 1); 790 786 791 787 dev_info(&dev->intf->dev, 792 788 "Endpoint 0x%02x %s on intf %d alt %d interval = %d, size %d\n", 793 - EM28XX_EP_AUDIO, usb_speed_string(dev->udev->speed), 789 + EM28XX_EP_AUDIO, usb_speed_string(udev->speed), 794 790 dev->ifnum, alt, interval, ep_size); 795 791 796 792 /* Calculate the number and size of URBs to better fit the audio samples */ ··· 864 860 } 865 861 dev->adev.urb[i] = urb; 866 862 867 - buf = usb_alloc_coherent(dev->udev, npackets * ep_size, GFP_ATOMIC, 863 + buf = usb_alloc_coherent(udev, npackets * ep_size, GFP_ATOMIC, 868 864 &urb->transfer_dma); 869 865 if (!buf) { 870 866 dev_err(&dev->intf->dev, ··· 874 870 } 875 871 dev->adev.transfer_buffer[i] = buf; 876 872 877 - urb->dev = dev->udev; 873 + urb->dev = udev; 878 874 urb->context = dev; 879 - urb->pipe = usb_rcvisocpipe(dev->udev, EM28XX_EP_AUDIO); 875 + urb->pipe = usb_rcvisocpipe(udev, EM28XX_EP_AUDIO); 880 876 urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP; 881 877 urb->transfer_buffer = buf; 882 878 urb->interval = interval; ··· 896 892 static int em28xx_audio_init(struct em28xx *dev) 897 893 { 898 894 struct em28xx_audio *adev = &dev->adev; 895 + struct usb_device *udev = interface_to_usbdev(dev->intf); 899 896 struct snd_pcm *pcm; 900 897 struct snd_card *card; 901 898 static int devnr; ··· 925 920 926 921 spin_lock_init(&adev->slock); 927 922 adev->sndcard = card; 928 - adev->udev = dev->udev; 923 + adev->udev = udev; 929 924 930 925 err = snd_pcm_new(card, "Em28xx Audio", 0, 0, 1, &pcm); 931 926 if (err < 0)
+5 -5
drivers/media/usb/em28xx/em28xx-cards.c
··· 3188 3188 */ 3189 3189 static void em28xx_release_resources(struct em28xx *dev) 3190 3190 { 3191 + struct usb_device *udev = interface_to_usbdev(dev->intf); 3192 + 3191 3193 /*FIXME: I2C IR should be disconnected */ 3192 3194 3193 3195 mutex_lock(&dev->lock); ··· 3200 3198 em28xx_i2c_unregister(dev, 1); 3201 3199 em28xx_i2c_unregister(dev, 0); 3202 3200 3203 - usb_put_dev(dev->udev); 3201 + usb_put_dev(udev); 3204 3202 3205 3203 /* Mark device as unused */ 3206 3204 clear_bit(dev->devno, em28xx_devused); ··· 3240 3238 int retval; 3241 3239 const char *chip_name = NULL; 3242 3240 3243 - dev->udev = udev; 3244 3241 dev->intf = interface; 3245 3242 mutex_init(&dev->ctrl_urb_lock); 3246 3243 spin_lock_init(&dev->slock); ··· 3278 3277 break; 3279 3278 case CHIP_ID_EM2820: 3280 3279 chip_name = "em2710/2820"; 3281 - if (le16_to_cpu(dev->udev->descriptor.idVendor) 3282 - == 0xeb1a) { 3283 - __le16 idProd = dev->udev->descriptor.idProduct; 3280 + if (le16_to_cpu(udev->descriptor.idVendor) == 0xeb1a) { 3281 + __le16 idProd = udev->descriptor.idProduct; 3284 3282 3285 3283 if (le16_to_cpu(idProd) == 0x2710) 3286 3284 chip_name = "em2710";
+17 -12
drivers/media/usb/em28xx/em28xx-core.c
··· 82 82 char *buf, int len) 83 83 { 84 84 int ret; 85 - int pipe = usb_rcvctrlpipe(dev->udev, 0); 85 + struct usb_device *udev = interface_to_usbdev(dev->intf); 86 + int pipe = usb_rcvctrlpipe(udev, 0); 86 87 87 88 if (dev->disconnected) 88 89 return -ENODEV; ··· 98 97 len & 0xff, len >> 8); 99 98 100 99 mutex_lock(&dev->ctrl_urb_lock); 101 - ret = usb_control_msg(dev->udev, pipe, req, 100 + ret = usb_control_msg(udev, pipe, req, 102 101 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 103 102 0x0000, reg, dev->urb_buf, len, HZ); 104 103 if (ret < 0) { ··· 155 154 int len) 156 155 { 157 156 int ret; 158 - int pipe = usb_sndctrlpipe(dev->udev, 0); 157 + struct usb_device *udev = interface_to_usbdev(dev->intf); 158 + int pipe = usb_sndctrlpipe(udev, 0); 159 159 160 160 if (dev->disconnected) 161 161 return -ENODEV; ··· 173 171 174 172 mutex_lock(&dev->ctrl_urb_lock); 175 173 memcpy(dev->urb_buf, buf, len); 176 - ret = usb_control_msg(dev->udev, pipe, req, 174 + ret = usb_control_msg(udev, pipe, req, 177 175 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 178 176 0x0000, reg, dev->urb_buf, len, HZ); 179 177 mutex_unlock(&dev->ctrl_urb_lock); ··· 799 797 { 800 798 struct urb *urb; 801 799 struct em28xx_usb_bufs *usb_bufs; 800 + struct usb_device *udev = interface_to_usbdev(dev->intf); 802 801 int i; 803 802 804 803 em28xx_isocdbg("em28xx: called em28xx_uninit_usb_xfer in mode %d\n", ··· 819 816 usb_unlink_urb(urb); 820 817 821 818 if (usb_bufs->transfer_buffer[i]) { 822 - usb_free_coherent(dev->udev, 819 + usb_free_coherent(udev, 823 820 urb->transfer_buffer_length, 824 821 usb_bufs->transfer_buffer[i], 825 822 urb->transfer_dma); ··· 873 870 int num_bufs, int max_pkt_size, int packet_multiplier) 874 871 { 875 872 struct em28xx_usb_bufs *usb_bufs; 873 + struct urb *urb; 874 + struct usb_device *udev = interface_to_usbdev(dev->intf); 876 875 int i; 877 876 int sb_size, pipe; 878 - struct urb *urb; 879 877 int j, k; 880 878 881 879 em28xx_isocdbg("em28xx: called em28xx_alloc_isoc in mode %d\n", mode); ··· 941 937 } 942 938 usb_bufs->urb[i] = urb; 943 939 944 - usb_bufs->transfer_buffer[i] = usb_alloc_coherent(dev->udev, 940 + usb_bufs->transfer_buffer[i] = usb_alloc_coherent(udev, 945 941 sb_size, GFP_KERNEL, &urb->transfer_dma); 946 942 if (!usb_bufs->transfer_buffer[i]) { 947 943 dev_err(&dev->intf->dev, ··· 954 950 memset(usb_bufs->transfer_buffer[i], 0, sb_size); 955 951 956 952 if (xfer_bulk) { /* bulk */ 957 - pipe = usb_rcvbulkpipe(dev->udev, 953 + pipe = usb_rcvbulkpipe(udev, 958 954 mode == EM28XX_ANALOG_MODE ? 959 955 dev->analog_ep_bulk : 960 956 dev->dvb_ep_bulk); 961 - usb_fill_bulk_urb(urb, dev->udev, pipe, 957 + usb_fill_bulk_urb(urb, udev, pipe, 962 958 usb_bufs->transfer_buffer[i], sb_size, 963 959 em28xx_irq_callback, dev); 964 960 urb->transfer_flags = URB_NO_TRANSFER_DMA_MAP; 965 961 } else { /* isoc */ 966 - pipe = usb_rcvisocpipe(dev->udev, 962 + pipe = usb_rcvisocpipe(udev, 967 963 mode == EM28XX_ANALOG_MODE ? 968 964 dev->analog_ep_isoc : 969 965 dev->dvb_ep_isoc); 970 - usb_fill_int_urb(urb, dev->udev, pipe, 966 + usb_fill_int_urb(urb, udev, pipe, 971 967 usb_bufs->transfer_buffer[i], sb_size, 972 968 em28xx_irq_callback, dev, 1); 973 969 urb->transfer_flags = URB_ISO_ASAP | ··· 999 995 struct em28xx_dmaqueue *dma_q = &dev->vidq; 1000 996 struct em28xx_dmaqueue *vbi_dma_q = &dev->vbiq; 1001 997 struct em28xx_usb_bufs *usb_bufs; 998 + struct usb_device *udev = interface_to_usbdev(dev->intf); 1002 999 int i; 1003 1000 int rc; 1004 1001 int alloc; ··· 1026 1021 } 1027 1022 1028 1023 if (xfer_bulk) { 1029 - rc = usb_clear_halt(dev->udev, usb_bufs->urb[0]->pipe); 1024 + rc = usb_clear_halt(udev, usb_bufs->urb[0]->pipe); 1030 1025 if (rc < 0) { 1031 1026 dev_err(&dev->intf->dev, 1032 1027 "failed to clear USB bulk endpoint stall/halt condition (error=%i)\n",
+2 -1
drivers/media/usb/em28xx/em28xx-dvb.c
··· 198 198 int rc; 199 199 struct em28xx_i2c_bus *i2c_bus = dvb->adapter.priv; 200 200 struct em28xx *dev = i2c_bus->dev; 201 + struct usb_device *udev = interface_to_usbdev(dev->intf); 201 202 int dvb_max_packet_size, packet_multiplier, dvb_alt; 202 203 203 204 if (dev->dvb_xfer_bulk) { ··· 217 216 dvb_alt = dev->dvb_alt_isoc; 218 217 } 219 218 220 - usb_set_interface(dev->udev, dev->ifnum, dvb_alt); 219 + usb_set_interface(udev, dev->ifnum, dvb_alt); 221 220 rc = em28xx_set_mode(dev, EM28XX_DIGITAL_MODE); 222 221 if (rc < 0) 223 222 return rc;
+8 -6
drivers/media/usb/em28xx/em28xx-input.c
··· 566 566 567 567 static int em28xx_register_snapshot_button(struct em28xx *dev) 568 568 { 569 + struct usb_device *udev = interface_to_usbdev(dev->intf); 569 570 struct input_dev *input_dev; 570 571 int err; 571 572 ··· 575 574 if (!input_dev) 576 575 return -ENOMEM; 577 576 578 - usb_make_path(dev->udev, dev->snapshot_button_path, 577 + usb_make_path(udev, dev->snapshot_button_path, 579 578 sizeof(dev->snapshot_button_path)); 580 579 strlcat(dev->snapshot_button_path, "/sbutton", 581 580 sizeof(dev->snapshot_button_path)); ··· 587 586 input_dev->keycodesize = 0; 588 587 input_dev->keycodemax = 0; 589 588 input_dev->id.bustype = BUS_USB; 590 - input_dev->id.vendor = le16_to_cpu(dev->udev->descriptor.idVendor); 591 - input_dev->id.product = le16_to_cpu(dev->udev->descriptor.idProduct); 589 + input_dev->id.vendor = le16_to_cpu(udev->descriptor.idVendor); 590 + input_dev->id.product = le16_to_cpu(udev->descriptor.idProduct); 592 591 input_dev->id.version = 1; 593 592 input_dev->dev.parent = &dev->intf->dev; 594 593 ··· 679 678 680 679 static int em28xx_ir_init(struct em28xx *dev) 681 680 { 681 + struct usb_device *udev = interface_to_usbdev(dev->intf); 682 682 struct em28xx_IR *ir; 683 683 struct rc_dev *rc; 684 684 int err = -ENOMEM; ··· 801 799 snprintf(ir->name, sizeof(ir->name), "%s IR", 802 800 dev_name(&dev->intf->dev)); 803 801 804 - usb_make_path(dev->udev, ir->phys, sizeof(ir->phys)); 802 + usb_make_path(udev, ir->phys, sizeof(ir->phys)); 805 803 strlcat(ir->phys, "/input0", sizeof(ir->phys)); 806 804 807 805 rc->input_name = ir->name; 808 806 rc->input_phys = ir->phys; 809 807 rc->input_id.bustype = BUS_USB; 810 808 rc->input_id.version = 1; 811 - rc->input_id.vendor = le16_to_cpu(dev->udev->descriptor.idVendor); 812 - rc->input_id.product = le16_to_cpu(dev->udev->descriptor.idProduct); 809 + rc->input_id.vendor = le16_to_cpu(udev->descriptor.idVendor); 810 + rc->input_id.product = le16_to_cpu(udev->descriptor.idProduct); 813 811 rc->dev.parent = &dev->intf->dev; 814 812 rc->driver_name = MODULE_NAME; 815 813
+6 -3
drivers/media/usb/em28xx/em28xx-video.c
··· 360 360 static int em28xx_set_alternate(struct em28xx *dev) 361 361 { 362 362 struct em28xx_v4l2 *v4l2 = dev->v4l2; 363 + struct usb_device *udev = interface_to_usbdev(dev->intf); 363 364 int errCode; 364 365 int i; 365 366 unsigned int min_pkt_size = v4l2->width * 2 + 4; ··· 412 411 } 413 412 em28xx_videodbg("setting alternate %d with wMaxPacketSize=%u\n", 414 413 dev->alt, dev->max_pkt_size); 415 - errCode = usb_set_interface(dev->udev, dev->ifnum, dev->alt); 414 + errCode = usb_set_interface(udev, dev->ifnum, dev->alt); 416 415 if (errCode < 0) { 417 416 dev_err(&dev->intf->dev, 418 417 "cannot change alternate number to %d (error=%i)\n", ··· 1860 1859 struct video_device *vdev = video_devdata(file); 1861 1860 struct em28xx *dev = video_drvdata(file); 1862 1861 struct em28xx_v4l2 *v4l2 = dev->v4l2; 1862 + struct usb_device *udev = interface_to_usbdev(dev->intf); 1863 1863 1864 1864 strlcpy(cap->driver, "em28xx", sizeof(cap->driver)); 1865 1865 strlcpy(cap->card, em28xx_boards[dev->model].name, sizeof(cap->card)); 1866 - usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info)); 1866 + usb_make_path(udev, cap->bus_info, sizeof(cap->bus_info)); 1867 1867 1868 1868 if (vdev->vfl_type == VFL_TYPE_GRABBER) 1869 1869 cap->device_caps = V4L2_CAP_READWRITE | ··· 2189 2187 { 2190 2188 struct em28xx *dev = video_drvdata(filp); 2191 2189 struct em28xx_v4l2 *v4l2 = dev->v4l2; 2190 + struct usb_device *udev = interface_to_usbdev(dev->intf); 2192 2191 int errCode; 2193 2192 2194 2193 em28xx_videodbg("users=%d\n", v4l2->users); ··· 2211 2208 /* set alternate 0 */ 2212 2209 dev->alt = 0; 2213 2210 em28xx_videodbg("setting alternate 0\n"); 2214 - errCode = usb_set_interface(dev->udev, 0, 0); 2211 + errCode = usb_set_interface(udev, 0, 0); 2215 2212 if (errCode < 0) { 2216 2213 dev_err(&dev->intf->dev, 2217 2214 "cannot change alternate number to 0 (error=%i)\n",
-1
drivers/media/usb/em28xx/em28xx.h
··· 677 677 spinlock_t slock; 678 678 679 679 /* usb transfer */ 680 - struct usb_device *udev; /* the usb device */ 681 680 struct usb_interface *intf; /* the usb interface */ 682 681 u8 ifnum; /* number of the assigned usb interface */ 683 682 u8 analog_ep_isoc; /* address of isoc endpoint for analog */