Hi Mauro & Markus, On 05/12/2018 05.07, Mauro Carvalho Chehab wrote: > Em Sun, 21 Oct 2018 15:45:39 +0200 > Markus Dobel <markus.dobel@xxxxxx> escreveu: > >> The original commit (the one reverted in this patch) introduced a >> regression, >> making a previously flawless adapter unresponsive after running a few >> hours >> to days. Since I never experienced the problems that the original commit >> is >> supposed to fix, I propose to revert the change until a regression-free >> variant is found. >> >> Before submitting this, I've been running a system 24x7 with this revert >> for >> several weeks now, and it's running stable again. >> >> It's not a pure revert, as the original commit does not revert cleanly >> anymore due to other changes, but content-wise it is. >> >> Signed-off-by: Markus Dobel <markus.dobel@xxxxxx> >> --- >> drivers/media/pci/cx23885/cx23885-core.c | 60 ------------------------ >> drivers/media/pci/cx23885/cx23885-reg.h | 14 ------ >> 2 files changed, 74 deletions(-) >> >> diff --git a/drivers/media/pci/cx23885/cx23885-core.c >> b/drivers/media/pci/cx23885/cx23885-core.c >> index 39804d830305..606f6fc0e68b 100644 >> --- a/drivers/media/pci/cx23885/cx23885-core.c >> +++ b/drivers/media/pci/cx23885/cx23885-core.c >> @@ -601,25 +601,6 @@ static void cx23885_risc_disasm(struct >> cx23885_tsport *port, > Patch was mangled by your e-mailer: it broke longer lines, causing > it to not apply. > > Also, before just reverting the entire thing, could you please check > if the enclosed hack would solve it? > > If so, it should be easy to add a quirk at drivers/pci/quirks.c > in order to detect the Ryzen models with a bad DMA engine that > require periodic resets, and then make cx23885 to use it. > > We did similar tricks before with some broken DMA engines, at > the time we had overlay support on drivers and AMD controllers > didn't support PCI2PCI DMA transfers. > > Brad, > > Could you please address this issue? I'll try to address this today or tomorrow. Since the original patch was applied I have not received any complaints from ryzen users, but we have accumulated a few reports from Intel users with a variety of motherboards that do now encounter issue. Strangely system load affects the repro; low/no load exhibits the error condition, high system load everything is fine. I'll do my best to send in a ryzen specific patch by the weekend. Regards, Brad > > > diff --git a/drivers/media/pci/cx23885/cx23885-core.c b/drivers/media/pci/cx23885/cx23885-core.c > index 39804d830305..8b012bee6b32 100644 > --- a/drivers/media/pci/cx23885/cx23885-core.c > +++ b/drivers/media/pci/cx23885/cx23885-core.c > @@ -603,8 +603,14 @@ static void cx23885_risc_disasm(struct cx23885_tsport *port, > > static void cx23885_clear_bridge_error(struct cx23885_dev *dev) > { > - uint32_t reg1_val = cx_read(TC_REQ); /* read-only */ > - uint32_t reg2_val = cx_read(TC_REQ_SET); > + uint32_t reg1_val, reg2_val; > + > + /* TODO: check for Ryzen quirk */ > + if (1) > + return; > + > + reg1_val = cx_read(TC_REQ); /* read-only */ > + reg2_val = cx_read(TC_REQ_SET); > > if (reg1_val && reg2_val) { > cx_write(TC_REQ, reg1_val); > > > > Thanks, > Mauro