On Mon, Nov 22, 2021 at 09:19:09PM -0800, Jay Dolan wrote: > On 11/22/21 4:48 AM, Andy Shevchenko wrote: > > On Mon, Nov 22, 2021 at 02:47:20PM +0200, Andy Shevchenko wrote: > > > On Thu, Nov 18, 2021 at 10:32:51PM -0800, Jay Dolan wrote: > > > > On 11/17/21 6:57 AM, Andy Shevchenko wrote: > > > > > Split Pericom driver to a separate module. > > > > > While at it, re-enable high baud rates. > > > > > > > > > > Jay, can you, please, test this on as many hardware as you have? > > > > > > ... > > > > > > > * Add in pericom_do_startup() because the UPF_MAGIC_MULTIPLIER doesn't > > > > stick. > > > > > > Can't find an evidence that this is the case. Can you recheck this (reading > > > flags back via sysfs or so)? So, for v2 I'll leave my approach. > > > > Otherwise how the other drivers which are using that flag survive? If it's > > indeed an issue, it should be fixed on generic level. > > > > I modified pericom_do_startup to log when the UPF_MAGIC_MULTIPLIER flag was > present. Then tried to set the port to 3000000 a few times. The port > stayed at 9600. It looks like pericom_do_startup() is getting called twice > per port on boot, and the flag is gone with the second one. > > [ 4.925577] [J4D] flag present > [ 4.926121] [J4D[ flag not present > [ 4.926843] [J4D] flag present > [ 4.927415] [J4D[ flag not present > [ 4.928106] [J4D] flag present > [ 4.928673] [J4D[ flag not present > [ 4.929419] [J4D] flag present > [ 4.930447] [J4D[ flag not present > > [ 49.528504] [J4D[ flag not present > [ 51.675240] [J4D[ flag not present > [ 59.617954] [J4D[ flag not present > > Then I modified it to log when it was adding the flag in. The port was set > to 3000000. Also the flag only needed to be added in once. It sticks after > the first time. > > [ 4.647546] [J4D] flag present > [ 4.648119] [J4D] flag not present(adding) > [ 4.648778] [J4D] flag present > [ 4.649330] [J4D] flag not present(adding) > [ 4.650001] [J4D] flag present > [ 4.650537] [J4D] flag not present(adding) > [ 4.651192] [J4D] flag present > [ 4.651718] [J4D] flag not present(adding) > > [ 96.025668] [J4D] flag present > [ 100.130626] [J4D] flag present > [ 116.435436] [J4D] flag present > > I mostly just guessed at do_startup() being the place to set the magic > multiplier flag after it didn't stick in quirk in 8250_pci.c. Can you share `dmesg` and output of `lspci -nk -vv` on the machine with the kernel with patches applied and running? -- With Best Regards, Andy Shevchenko