/* * linux/drivers/sound/vidc.h * * Copyright (C) 1997 Russell King * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * VIDC sound function prototypes */ /* vidc_fill.S */ /* * Filler routines for different channels and sample sizes */ extern unsigned long vidc_fill_1x8_u(unsigned long ibuf, unsigned long iend, unsigned long obuf, int mask); extern unsigned long vidc_fill_2x8_u(unsigned long ibuf, unsigned long iend, unsigned long obuf, int mask); extern unsigned long vidc_fill_1x8_s(unsigned long ibuf, unsigned long iend, unsigned long obuf, int mask); extern unsigned long vidc_fill_2x8_s(unsigned long ibuf, unsigned long iend, unsigned long obuf, int mask); extern unsigned long vidc_fill_1x16_s(unsigned long ibuf, unsigned long iend, unsigned long obuf, int mask); extern unsigned long vidc_fill_2x16_s(unsigned long ibuf, unsigned long iend, unsigned long obuf, int mask); /* * DMA Interrupt handler */ extern irqreturn_t vidc_sound_dma_irq(int irqnr, void *ref); /* * Filler routine pointer */ extern unsigned long (*vidc_filler) (unsigned long ibuf, unsigned long iend, unsigned long obuf, int mask); /* * Virtual DMA buffer exhausted */ extern irqreturn_t (*dma_interrupt) (void); /* * Virtual DMA buffer addresses */ extern unsigned long dma_start, dma_count, dma_bufsize; extern unsigned long dma_buf[2], dma_pbuf[2]; /* vidc_synth.c */ extern void vidc_synth_init(struct address_info *hw_config); extern void vidc_synth_exit(struct address_info *hw_config); extern int vidc_synth_get_volume(void); extern int vidc_synth_set_volume(int vol); 499d02420082f436abf3238'>treecommitdiff
path: root/include/net/nl802154.h
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2017-01-24 09:18:57 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-01-25 11:02:29 +0100
commit407788b51db6f6aab499d02420082f436abf3238 (patch)
treeb2fb3c885baf47cd2bd8ee0429f423b352e11905 /include/net/nl802154.h
parent7a308bb3016f57e5be11a677d15b821536419d36 (diff)
usb: musb: Fix host mode error -71 regression
Commit 467d5c980709 ("usb: musb: Implement session bit based runtime PM for musb-core") started implementing musb generic runtime PM support by introducing devctl register session bit based state control. This caused a regression where if a USB mass storage device is connected to a USB hub, we can get: usb 1-1: reset high-speed USB device number 2 using musb-hdrc usb 1-1: device descriptor read/64, error -71 usb 1-1.1: new high-speed USB device number 4 using musb-hdrc This is because before the USB storage device is connected, musb is in OTG_STATE_A_SUSPEND. And we currently only set need_finish_resume in musb_stage0_irq() and the related code calling finish_resume_work in musb_resume() and musb_runtime_resume() never gets called. To fix the issue, we can call schedule_delayed_work() directly in musb_stage0_irq() to have finish_resume_work run. And we should no longer never get interrupts when when suspended. We have changed musb to no longer need pm_runtime_irqsafe(). The need_finish_resume flag was added in commit 9298b4aad37e ("usb: musb: fix device hotplug behind hub") and no longer applies as far as I can tell. So let's just remove the earlier code that no longer is needed. Fixes: 467d5c980709 ("usb: musb: Implement session bit based runtime PM for musb-core") Reported-by: Bin Liu <b-liu@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Bin Liu <b-liu@ti.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/net/nl802154.h')