/* * linux/drivers/video/bt455.h * * Copyright 2003 Thiemo Seufer * Copyright 2016 Maciej W. Rozycki * * This file is subject to the terms and conditions of the GNU General * Public License. See the file COPYING in the main directory of this * archive for more details. */ #include /* * Bt455 byte-wide registers, 32-bit aligned. */ struct bt455_regs { volatile u8 addr_cmap; u8 pad0[3]; volatile u8 addr_cmap_data; u8 pad1[3]; volatile u8 addr_clr; u8 pad2[3]; volatile u8 addr_ovly; u8 pad3[3]; }; static inline void bt455_select_reg(struct bt455_regs *regs, int ir) { mb(); regs->addr_cmap = ir & 0x0f; } static inline void bt455_reset_reg(struct bt455_regs *regs) { mb(); regs->addr_clr = 0; } /* * Read/write to a Bt455 color map register. */ static inline void bt455_read_cmap_next(struct bt455_regs *regs, u8 *grey) { mb(); regs->addr_cmap_data; rmb(); *grey = regs->addr_cmap_data & 0xf; rmb(); regs->addr_cmap_data; } static inline void bt455_write_cmap_next(struct bt455_regs *regs, u8 grey) { wmb(); regs->addr_cmap_data = 0x0; wmb(); regs->addr_cmap_data = grey & 0xf; wmb(); regs->addr_cmap_data = 0x0; } static inline void bt455_write_ovly_next(struct bt455_regs *regs, u8 grey) { wmb(); regs->addr_ovly = 0x0; wmb(); regs->addr_ovly = grey & 0xf; wmb(); regs->addr_ovly = 0x0; } static inline void bt455_read_cmap_entry(struct bt455_regs *regs, int cr, u8 *grey) { bt455_select_reg(regs, cr); bt455_read_cmap_next(regs, grey); } static inline void bt455_write_cmap_entry(struct bt455_regs *regs, int cr, u8 grey) { bt455_select_reg(regs, cr); bt455_write_cmap_next(regs, grey); } static inline void bt455_write_ovly_entry(struct bt455_regs *regs, u8 grey) { bt455_reset_reg(regs); bt455_write_ovly_next(regs, grey); } ve'>logtreecommitdiff
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2017-01-17 14:21:56 +0000
committerBjorn Helgaas <bhelgaas@google.com>2017-01-17 08:41:51 -0600
commit4d191b1b63c209e37bf27938ef365244d3c41084 (patch)
treef2ab6cdb65ddacdf2e7c019cd55e353f0c16b400 /sound/soc/codecs/isabelle.c
parent51ebfc92b72b4f7dac1ab45683bf56741e454b8c (diff)
PCI/MSI: pci-xgene-msi: Fix CPU hotplug registration handling
The conversion to the new hotplug state machine introduced a regression where a successful hotplug registration would be treated as an error, effectively disabling the MSI driver forever. Fix it by doing the proper check on the return value. Fixes: 9c248f8896e6 ("PCI/xgene-msi: Convert to hotplug state machine") Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Tested-by: Duc Dang <dhdang@apm.com> CC: Thomas Gleixner <tglx@linutronix.de> CC: stable@vger.kernel.org
Diffstat (limited to 'sound/soc/codecs/isabelle.c')