** Package changed: ubuntu => linux (Ubuntu)

** Tags added: focal jammy

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/2100787

Title:
  USB FM transmitter not recognized after kernel update

Status in linux package in Ubuntu:
  New

Bug description:
  Hello,

  I occasionally use an USB FM transmitter to send audio from my laptop to 
hi-fi systems that don't have the ability to receive a bluetooth stream but 
have a FM tuner. I use that kind of cheap module which works great, in stereo 
mode (see picture in the JPG attachment):
  
https://fr.aliexpress.com/item/32921292502.html?spm=a2g0o.store_pc_allItems_or_groupList.0.0.677dd1cb71GfSm&pdp_npi=4%40dis%21EUR%21%E2%82%AC%205%2C74%21%E2%82%AC%205%2C69%21%21%215.84%215.79%21%40211b6c1917410185656756898ea2ae%2166245292113%21sh%21FR%210%21X&_gl=1*xvmald*_gcl_au*NDk2OTk1ODI3LjE3NDEwMTgyMzE.*_ga*NjA0NjU3MDUyLjE3NDEwMTgyMzE.*_ga_VED1YSGNC7*MTc0MTAxODIzMS4xLjEuMTc0MTAxODU2My4xLjAuMA..&gatewayAdapt=glo2fra

  It is recognized on Ubuntu Desktop as an external sound card with the
  HID driver. It worked well until kernel 5.4.0-167 on Ubuntu 20.04 and
  it fails since 5.4.0-169. Bug occurs also on an updated Ubuntu desktop
  22.04 with kernel 5.15.0-133.

  The USB device is working in USB 1.1 (see attached lsusb.txt file) and
  plugged into an USB 2.0 port. You will find in attachment the kernel
  logs (dmesg.txt) when device is recognized in 5.4.0-167 and when it is
  not recognized in 5.15.0-133 (dmesg_fail.txt). This bug exists since
  November 2023 but I may not have used my USB device since then, as I
  weekly update my software packages.

  When we look at the changelog of the identified patch, it fixes only
  bug #2043197. This bug was fixed by commit
  
https://github.com/torvalds/linux/commit/59cf445754566984fd55af19ba7146c76e6627bc

  So, not sure about that but I assume the bug I encounter deals with
  the following code in drivers/usb/core/hub.c, as seen now on master
  branch:

        /*
         * Check the ep0 maxpacket guess and correct it if necessary.
         * maxp0 is the value stored in the device descriptor;
         * i is the value it encodes (logarithmic for SuperSpeed or greater).
         */
        i = maxp0;
        if (udev->speed >= USB_SPEED_SUPER) {
                if (maxp0 <= 16)
                        i = 1 << maxp0;
                else
                        i = 0;          /* Invalid */
        }
        if (usb_endpoint_maxp(&udev->ep0.desc) == i) {
                ;       /* Initial ep0 maxpacket guess is right */
        } else if (((udev->speed == USB_SPEED_FULL ||
                                udev->speed == USB_SPEED_HIGH) &&
                        (i == 8 || i == 16 || i == 32 || i == 64)) ||
                        (udev->speed >= USB_SPEED_SUPER && i > 0)) {
                /* Initial guess is wrong; use the descriptor's value */
                if (udev->speed == USB_SPEED_FULL)
                        dev_dbg(&udev->dev, "ep0 maxpacket = %d\n", i);
                else
                        dev_warn(&udev->dev, "Using ep0 maxpacket: %d\n", i);
                udev->ep0.desc.wMaxPacketSize = cpu_to_le16(i);
                usb_ep0_reinit(udev);
        } else {
                /* Initial guess is wrong and descriptor's value is invalid */
                dev_err(&udev->dev, "Invalid ep0 maxpacket: %d\n", maxp0);
                retval = -EMSGSIZE;
                goto fail;
        }

  I am not a kernel source code specialist but as far as I understand,
  is there a missing part in the code not taking the "USB_SPEED_LOW"
  devices into account?

  Kind regards.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2100787/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to