Good morning Oliver,

thank you very much for the reply. I will try to build a test kernel
hopefully later this evening and I'll get back to you.

Meanwhile you can see in the attachment in my first email the output
of `$ lsusb -v -d 152d:1561`

Is there a way to test UAS without recompiling the Kernel? Like a
Kernel argument or modprobe option?

Best regards,
Julian Xhokaxhiu
Full Stack Developer, IT Practised (ISCED 4)
https://julianxhokaxhiu.com/
On Tue, Oct 16, 2018 at 10:14 AM Oliver Neukum <oneu...@suse.com> wrote:
>
> On Mo, 2018-10-15 at 14:12 +0200, Julian Xhokaxhiu wrote:
> > Hi Oliver,
> >
> > I'm currently using the latest 4.18.12 mainline ( on Arch
> > https://www.archlinux.org/packages/core/x86_64/linux/ ), and yes
> > you're right I am NOT using UAS at the moment. The link I left is
> > because I noticed those errors on dmesg, and I thought I had it
> > enabled. This is why I am writing to you right now :)
> >
> > I personally think the SSD sometimes hangs because TRIM commands are
> > not sent properly to the adapter. Although I'm not 100% sure, this is
> > why I would like to test UAS.
> >
> > Can you please point me to the right instructions for trying UAS on my
> > adapter? So I can report back the outcome.
> >
> > Also I noticed that is blacklisted because it's detected as ASMedia (
> > although it's JMicron ) and falls in one of the four cases that checks
> > for speed ( or something like that, I can't find the link to the
> > source code again otherwise I would have pointed to the code line ).
>
> If it is detected as ASMedia, you can make a test kernel that removes
> this code:
>
>         if (le16_to_cpu(udev->descriptor.idVendor) == 0x174c &&
>                         (le16_to_cpu(udev->descriptor.idProduct) == 0x5106 ||
>                          le16_to_cpu(udev->descriptor.idProduct) == 0x55aa)) {
>                 if (udev->actconfig->desc.bMaxPower == 0) {
>                         /* ASM1153, do nothing */
>                 } else if (udev->speed < USB_SPEED_SUPER) {
>                         /* No streams info, assume ASM1051 */
>                         flags |= US_FL_IGNORE_UAS;
>                 } else if (usb_ss_max_streams(&eps[1]->ss_ep_comp) == 32) {
>                         /* Possibly an ASM1051, disable uas */
>                         flags |= US_FL_IGNORE_UAS;
>                 } else {
>                         /* ASM1053, these have issues with large transfers */
>                         flags |= US_FL_MAX_SECTORS_240;
>                 }
>         }
>
> from uas-detect.h
>
> Yet it seems not to match the log you posted. Could you post the output of
> "lsusb -v" for your device?
>
> A problem with TRIM is certainly worth investigating.
>
>         Regards
>                 Oliver
>

Reply via email to