Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1553439 > unrolled thread

[PATCH 4.8 73/96] [media] media: solo6x10: fix lockup by avoiding delayed register write

Started byGreg Kroah-Hartman <gregkh@linuxfoundation.org>
First post2017-01-07 00:00 +0100
Last post2017-01-07 00:00 +0100
Articles 1 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 4.8 73/96] [media] media: solo6x10: fix lockup by avoiding delayed register write Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-07 00:00 +0100

#1553439 — [PATCH 4.8 73/96] [media] media: solo6x10: fix lockup by avoiding delayed register write

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-01-07 00:00 +0100
Subject[PATCH 4.8 73/96] [media] media: solo6x10: fix lockup by avoiding delayed register write
Message-ID<sWLEm-9g-49@gated-at.bofh.it>
4.8-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Andrey Utkin <andrey.utkin@corp.bluecherry.net>

commit 5fc4b067ec082c3127e0156f800769b7e0dce078 upstream.

This fixes a lockup at device probing which happens on some solo6010
hardware samples. This is a regression introduced by commit e1ceb25a1569
("[media] SOLO6x10: remove unneeded register locking and barriers")

The observed lockup happens in solo_set_motion_threshold() called from
solo_motion_config().

This extra "flushing" is not fundamentally needed for every write, but
apparently the code in driver assumes such behaviour at last in some
places.

Actual fix was proposed by Hans Verkuil.

Fixes: e1ceb25a1569 ("[media] SOLO6x10: remove unneeded register locking and barriers")

Signed-off-by: Andrey Utkin <andrey.utkin@corp.bluecherry.net>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/pci/solo6x10/solo6x10.h |    3 +++
 1 file changed, 3 insertions(+)

--- a/drivers/media/pci/solo6x10/solo6x10.h
+++ b/drivers/media/pci/solo6x10/solo6x10.h
@@ -284,7 +284,10 @@ static inline u32 solo_reg_read(struct s
 static inline void solo_reg_write(struct solo_dev *solo_dev, int reg,
 				  u32 data)
 {
+	u16 val;
+
 	writel(data, solo_dev->reg_base + reg);
+	pci_read_config_word(solo_dev->pdev, PCI_STATUS, &val);
 }
 
 static inline void solo_irq_on(struct solo_dev *dev, u32 mask)

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web