Merge branch 'sched/urgent'; commit 'v2.6.28' into sched/core
This commit is contained in:
commit
4e202284e6
167 changed files with 1709 additions and 1311 deletions
|
@ -24,7 +24,7 @@ real bad - it changes the behaviour of all unaligned instructions in user
|
|||
space, and might cause programs to fail unexpectedly.
|
||||
|
||||
To change the alignment trap behavior, simply echo a number into
|
||||
/proc/sys/debug/alignment. The number is made up from various bits:
|
||||
/proc/cpu/alignment. The number is made up from various bits:
|
||||
|
||||
bit behavior when set
|
||||
--- -----------------
|
||||
|
|
|
@ -220,14 +220,17 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||
Bits in debug_level correspond to a level in
|
||||
ACPI_DEBUG_PRINT statements, e.g.,
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
|
||||
See Documentation/acpi/debug.txt for more information
|
||||
about debug layers and levels.
|
||||
The debug_level mask defaults to "info". See
|
||||
Documentation/acpi/debug.txt for more information about
|
||||
debug layers and levels.
|
||||
|
||||
Enable processor driver info messages:
|
||||
acpi.debug_layer=0x20000000
|
||||
Enable PCI/PCI interrupt routing info messages:
|
||||
acpi.debug_layer=0x400000
|
||||
Enable AML "Debug" output, i.e., stores to the Debug
|
||||
object while interpreting AML:
|
||||
acpi.debug_layer=0xffffffff acpi.debug_level=0x2
|
||||
Enable PCI/PCI interrupt routing info messages:
|
||||
acpi.debug_layer=0x400000 acpi.debug_level=0x4
|
||||
Enable all messages related to ACPI hardware:
|
||||
acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
|
||||
|
||||
|
|
|
@ -1063,6 +1063,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
|||
|
||||
STAC9227/9228/9229/927x
|
||||
ref Reference board
|
||||
ref-no-jd Reference board without HP/Mic jack detection
|
||||
3stack D965 3stack
|
||||
5stack D965 5stack + SPDIF
|
||||
dell-3stack Dell Dimension E520
|
||||
|
@ -1076,6 +1077,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
|||
|
||||
STAC92HD73*
|
||||
ref Reference board
|
||||
no-jd BIOS setup but without jack-detection
|
||||
dell-m6-amic Dell desktops/laptops with analog mics
|
||||
dell-m6-dmic Dell desktops/laptops with digital mics
|
||||
dell-m6 Dell desktops/laptops with both type of mics
|
||||
|
|
|
@ -114,11 +114,11 @@ modules.
|
|||
Then you must load the gadget serial driver. To load it as an
|
||||
ACM device (recommended for interoperability), do this:
|
||||
|
||||
modprobe g_serial use_acm=1
|
||||
modprobe g_serial
|
||||
|
||||
To load it as a vendor specific bulk in/out device, do this:
|
||||
|
||||
modprobe g_serial
|
||||
modprobe g_serial use_acm=0
|
||||
|
||||
This will also automatically load the underlying gadget peripheral
|
||||
controller driver. This must be done each time you reboot the gadget
|
||||
|
|
|
@ -49,8 +49,10 @@ it and 002/048 sometime later.
|
|||
|
||||
These files can be read as binary data. The binary data consists
|
||||
of first the device descriptor, then the descriptors for each
|
||||
configuration of the device. That information is also shown in
|
||||
text form by the /proc/bus/usb/devices file, described later.
|
||||
configuration of the device. Multi-byte fields in the device and
|
||||
configuration descriptors, but not other descriptors, are converted
|
||||
to host endianness by the kernel. This information is also shown
|
||||
in text form by the /proc/bus/usb/devices file, described later.
|
||||
|
||||
These files may also be used to write user-level drivers for the USB
|
||||
devices. You would open the /proc/bus/usb/BBB/DDD file read/write,
|
||||
|
|
|
@ -34,11 +34,12 @@ if usbmon is built into the kernel.
|
|||
Verify that bus sockets are present.
|
||||
|
||||
# ls /sys/kernel/debug/usbmon
|
||||
0s 0t 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u
|
||||
0s 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u
|
||||
#
|
||||
|
||||
Now you can choose to either use the sockets numbered '0' (to capture packets on
|
||||
all buses), and skip to step #3, or find the bus used by your device with step #2.
|
||||
Now you can choose to either use the socket '0u' (to capture packets on all
|
||||
buses), and skip to step #3, or find the bus used by your device with step #2.
|
||||
This allows to filter away annoying devices that talk continuously.
|
||||
|
||||
2. Find which bus connects to the desired device
|
||||
|
||||
|
@ -99,8 +100,9 @@ on the event type, but there is a set of words, common for all types.
|
|||
|
||||
Here is the list of words, from left to right:
|
||||
|
||||
- URB Tag. This is used to identify URBs is normally a kernel mode address
|
||||
of the URB structure in hexadecimal.
|
||||
- URB Tag. This is used to identify URBs, and is normally an in-kernel address
|
||||
of the URB structure in hexadecimal, but can be a sequence number or any
|
||||
other unique string, within reason.
|
||||
|
||||
- Timestamp in microseconds, a decimal number. The timestamp's resolution
|
||||
depends on available clock, and so it can be much worse than a microsecond
|
||||
|
|
14
MAINTAINERS
14
MAINTAINERS
|
@ -1527,10 +1527,10 @@ W: http://ebtables.sourceforge.net/
|
|||
S: Maintained
|
||||
|
||||
ECRYPT FILE SYSTEM
|
||||
P: Mike Halcrow, Phillip Hellewell
|
||||
M: mhalcrow@us.ibm.com, phillip@hellewell.homeip.net
|
||||
L: ecryptfs-devel@lists.sourceforge.net
|
||||
W: http://ecryptfs.sourceforge.net/
|
||||
P: Tyler Hicks, Dustin Kirkland
|
||||
M: tyhicks@linux.vnet.ibm.com, kirkland@canonical.com
|
||||
L: ecryptfs-devel@lists.launchpad.net
|
||||
W: https://launchpad.net/ecryptfs
|
||||
S: Supported
|
||||
|
||||
EDAC-CORE
|
||||
|
@ -2191,9 +2191,9 @@ S: Supported
|
|||
|
||||
INOTIFY
|
||||
P: John McCutchan
|
||||
M: ttb@tentacle.dhs.org
|
||||
M: john@johnmccutchan.com
|
||||
P: Robert Love
|
||||
M: rml@novell.com
|
||||
M: rlove@rlove.org
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
|
||||
|
@ -4529,7 +4529,7 @@ S: Maintained
|
|||
USB VIDEO CLASS
|
||||
P: Laurent Pinchart
|
||||
M: laurent.pinchart@skynet.be
|
||||
L: linux-uvc-devel@lists.berlios.de
|
||||
L: linux-uvc-devel@lists.berlios.de (subscribers-only)
|
||||
L: video4linux-list@redhat.com
|
||||
W: http://linux-uvc.berlios.de
|
||||
S: Maintained
|
||||
|
|
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
|||
VERSION = 2
|
||||
PATCHLEVEL = 6
|
||||
SUBLEVEL = 28
|
||||
EXTRAVERSION = -rc8
|
||||
EXTRAVERSION =
|
||||
NAME = Erotic Pickled Herring
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
|
|
@ -630,7 +630,7 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
|
|||
return -ENOMEM;
|
||||
|
||||
sachip->clk = clk_get(me, "SA1111_CLK");
|
||||
if (!sachip->clk) {
|
||||
if (IS_ERR(sachip->clk)) {
|
||||
ret = PTR_ERR(sachip->clk);
|
||||
goto err_free;
|
||||
}
|
||||
|
|
|
@ -115,6 +115,8 @@ EXPORT_SYMBOL(__strnlen_user);
|
|||
EXPORT_SYMBOL(__strncpy_from_user);
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
EXPORT_SYMBOL(copy_page);
|
||||
|
||||
EXPORT_SYMBOL(__copy_from_user);
|
||||
EXPORT_SYMBOL(__copy_to_user);
|
||||
EXPORT_SYMBOL(__clear_user);
|
||||
|
@ -181,8 +183,6 @@ EXPORT_SYMBOL(_find_first_bit_be);
|
|||
EXPORT_SYMBOL(_find_next_bit_be);
|
||||
#endif
|
||||
|
||||
EXPORT_SYMBOL(copy_page);
|
||||
|
||||
#ifdef CONFIG_FUNCTION_TRACER
|
||||
EXPORT_SYMBOL(mcount);
|
||||
#endif
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include <linux/personality.h>
|
||||
#include <linux/kallsyms.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hardirq.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
||||
|
|
|
@ -12,9 +12,8 @@ extern void clear_reset_status(unsigned int mask);
|
|||
|
||||
/**
|
||||
* init_gpio_reset() - register GPIO as reset generator
|
||||
*
|
||||
* @gpio - gpio nr
|
||||
* @output - set gpio as out/low instead of input during normal work
|
||||
* @gpio: gpio nr
|
||||
* @output: set gpio as out/low instead of input during normal work
|
||||
*/
|
||||
extern int init_gpio_reset(int gpio, int output);
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/signal.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/hardirq.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/kprobes.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
|
||||
#include <asm/arch/smc.h>
|
||||
#include <mach/smc.h>
|
||||
|
||||
static struct smc_timing flash_timing __initdata = {
|
||||
.ncs_read_setup = 0,
|
||||
|
|
|
@ -25,10 +25,10 @@
|
|||
|
||||
#include <asm/setup.h>
|
||||
|
||||
#include <asm/arch/at32ap700x.h>
|
||||
#include <asm/arch/init.h>
|
||||
#include <asm/arch/board.h>
|
||||
#include <asm/arch/portmux.h>
|
||||
#include <mach/at32ap700x.h>
|
||||
#include <mach/init.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/portmux.h>
|
||||
|
||||
/* Oscillator frequencies. These are board-specific */
|
||||
unsigned long at32_board_osc_rates[3] = {
|
||||
|
|
|
@ -10,7 +10,7 @@ MKIMAGE := $(srctree)/scripts/mkuboot.sh
|
|||
|
||||
extra-y := vmlinux.bin vmlinux.gz
|
||||
|
||||
OBJCOPYFLAGS_vmlinux.bin := -O binary
|
||||
OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note.gnu.build-id
|
||||
$(obj)/vmlinux.bin: vmlinux FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.27-rc1
|
||||
# Tue Aug 5 15:40:26 2008
|
||||
# Linux kernel version: 2.6.28-rc8
|
||||
# Thu Dec 18 11:22:23 2008
|
||||
#
|
||||
CONFIG_AVR32=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
|
@ -67,6 +67,7 @@ CONFIG_SIGNALFD=y
|
|||
CONFIG_TIMERFD=y
|
||||
CONFIG_EVENTFD=y
|
||||
CONFIG_SHMEM=y
|
||||
CONFIG_AIO=y
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
# CONFIG_SLAB is not set
|
||||
|
@ -77,15 +78,8 @@ CONFIG_PROFILING=y
|
|||
CONFIG_OPROFILE=m
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
CONFIG_KPROBES=y
|
||||
# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
|
||||
# CONFIG_HAVE_IOREMAP_PROT is not set
|
||||
CONFIG_HAVE_KPROBES=y
|
||||
# CONFIG_HAVE_KRETPROBES is not set
|
||||
# CONFIG_HAVE_ARCH_TRACEHOOK is not set
|
||||
# CONFIG_HAVE_DMA_ATTRS is not set
|
||||
# CONFIG_USE_GENERIC_SMP_HELPERS is not set
|
||||
CONFIG_HAVE_CLK=y
|
||||
CONFIG_PROC_PAGE_MONITOR=y
|
||||
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
|
@ -118,6 +112,7 @@ CONFIG_DEFAULT_CFQ=y
|
|||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
CONFIG_FREEZER=y
|
||||
|
||||
#
|
||||
# System Type and features
|
||||
|
@ -134,6 +129,8 @@ CONFIG_CPU_AT32AP700X=y
|
|||
CONFIG_CPU_AT32AP7000=y
|
||||
CONFIG_BOARD_ATSTK1000=y
|
||||
# CONFIG_BOARD_ATNGW100 is not set
|
||||
# CONFIG_BOARD_FAVR_32 is not set
|
||||
# CONFIG_BOARD_MIMC200 is not set
|
||||
# CONFIG_BOARD_ATSTK1002 is not set
|
||||
# CONFIG_BOARD_ATSTK1003 is not set
|
||||
# CONFIG_BOARD_ATSTK1004 is not set
|
||||
|
@ -171,14 +168,14 @@ CONFIG_FLATMEM_MANUAL=y
|
|||
# CONFIG_SPARSEMEM_MANUAL is not set
|
||||
CONFIG_FLATMEM=y
|
||||
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||
# CONFIG_SPARSEMEM_STATIC is not set
|
||||
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
|
||||
CONFIG_PAGEFLAGS_EXTENDED=y
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=4
|
||||
# CONFIG_RESOURCES_64BIT is not set
|
||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||
CONFIG_ZONE_DMA_FLAG=0
|
||||
CONFIG_NR_QUICK=2
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_UNEVICTABLE_LRU=y
|
||||
# CONFIG_OWNERSHIP_TRACE is not set
|
||||
CONFIG_NMI_DEBUGGING=y
|
||||
# CONFIG_HZ_100 is not set
|
||||
|
@ -186,7 +183,7 @@ CONFIG_HZ_250=y
|
|||
# CONFIG_HZ_300 is not set
|
||||
# CONFIG_HZ_1000 is not set
|
||||
CONFIG_HZ=250
|
||||
# CONFIG_SCHED_HRTICK is not set
|
||||
CONFIG_SCHED_HRTICK=y
|
||||
CONFIG_CMDLINE=""
|
||||
|
||||
#
|
||||
|
@ -228,6 +225,8 @@ CONFIG_CPU_FREQ_AT32AP=y
|
|||
# Executable file formats
|
||||
#
|
||||
CONFIG_BINFMT_ELF=y
|
||||
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
|
||||
# CONFIG_HAVE_AOUT is not set
|
||||
# CONFIG_BINFMT_MISC is not set
|
||||
CONFIG_NET=y
|
||||
|
||||
|
@ -299,6 +298,7 @@ CONFIG_IPV6_TUNNEL=m
|
|||
# CONFIG_ATM is not set
|
||||
CONFIG_STP=m
|
||||
CONFIG_BRIDGE=m
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
CONFIG_LLC=m
|
||||
|
@ -321,14 +321,8 @@ CONFIG_LLC=m
|
|||
# CONFIG_IRDA is not set
|
||||
# CONFIG_BT is not set
|
||||
# CONFIG_AF_RXRPC is not set
|
||||
|
||||
#
|
||||
# Wireless
|
||||
#
|
||||
# CONFIG_CFG80211 is not set
|
||||
# CONFIG_WIRELESS_EXT is not set
|
||||
# CONFIG_MAC80211 is not set
|
||||
# CONFIG_IEEE80211 is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
# CONFIG_RFKILL is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
|
||||
|
@ -359,6 +353,7 @@ CONFIG_MTD_CMDLINE_PARTS=y
|
|||
# User Modules And Translation Layers
|
||||
#
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_HAVE_MTD_OTP=y
|
||||
CONFIG_MTD_BLKDEVS=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
# CONFIG_FTL is not set
|
||||
|
@ -407,6 +402,8 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
|
|||
# Self-contained MTD device drivers
|
||||
#
|
||||
CONFIG_MTD_DATAFLASH=m
|
||||
# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
|
||||
CONFIG_MTD_DATAFLASH_OTP=y
|
||||
CONFIG_MTD_M25P80=m
|
||||
CONFIG_M25PXX_USE_FAST_READ=y
|
||||
# CONFIG_MTD_SLRAM is not set
|
||||
|
@ -464,9 +461,10 @@ CONFIG_ATMEL_TCLIB=y
|
|||
CONFIG_ATMEL_TCB_CLKSRC=y
|
||||
CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
# CONFIG_ICS932S401 is not set
|
||||
CONFIG_ATMEL_SSC=m
|
||||
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||
# CONFIG_HAVE_IDE is not set
|
||||
# CONFIG_C2PORT is not set
|
||||
|
||||
#
|
||||
# SCSI device support
|
||||
|
@ -548,6 +546,9 @@ CONFIG_MACB=y
|
|||
# CONFIG_IBM_NEW_EMAC_RGMII is not set
|
||||
# CONFIG_IBM_NEW_EMAC_TAH is not set
|
||||
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
|
||||
# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
|
||||
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
|
||||
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
|
||||
# CONFIG_B44 is not set
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
|
@ -653,6 +654,7 @@ CONFIG_UNIX98_PTYS=y
|
|||
CONFIG_I2C=m
|
||||
CONFIG_I2C_BOARDINFO=y
|
||||
CONFIG_I2C_CHARDEV=m
|
||||
CONFIG_I2C_HELPER_AUTO=y
|
||||
CONFIG_I2C_ALGOBIT=m
|
||||
|
||||
#
|
||||
|
@ -716,6 +718,10 @@ CONFIG_GPIOLIB=y
|
|||
# CONFIG_DEBUG_GPIO is not set
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
|
||||
#
|
||||
# Memory mapped GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# I2C GPIO expanders:
|
||||
#
|
||||
|
@ -745,11 +751,11 @@ CONFIG_WATCHDOG=y
|
|||
#
|
||||
# CONFIG_SOFT_WATCHDOG is not set
|
||||
CONFIG_AT32AP700X_WDT=y
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
#
|
||||
# Sonics Silicon Backplane
|
||||
#
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
# CONFIG_SSB is not set
|
||||
|
||||
#
|
||||
|
@ -758,6 +764,10 @@ CONFIG_SSB_POSSIBLE=y
|
|||
# CONFIG_MFD_CORE is not set
|
||||
# CONFIG_MFD_SM501 is not set
|
||||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_MFD_TMIO is not set
|
||||
# CONFIG_MFD_WM8400 is not set
|
||||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
# CONFIG_REGULATOR is not set
|
||||
|
||||
#
|
||||
# Multimedia devices
|
||||
|
@ -783,6 +793,7 @@ CONFIG_SSB_POSSIBLE=y
|
|||
CONFIG_FB=y
|
||||
# CONFIG_FIRMWARE_EDID is not set
|
||||
# CONFIG_FB_DDC is not set
|
||||
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
|
||||
CONFIG_FB_CFB_FILLRECT=y
|
||||
CONFIG_FB_CFB_COPYAREA=y
|
||||
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||
|
@ -804,10 +815,13 @@ CONFIG_FB_CFB_IMAGEBLIT=y
|
|||
# CONFIG_FB_S1D13XXX is not set
|
||||
CONFIG_FB_ATMEL=y
|
||||
# CONFIG_FB_VIRTUAL is not set
|
||||
# CONFIG_FB_METRONOME is not set
|
||||
# CONFIG_FB_MB862XX is not set
|
||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||
CONFIG_LCD_CLASS_DEVICE=y
|
||||
CONFIG_LCD_LTV350QV=y
|
||||
# CONFIG_LCD_ILI9320 is not set
|
||||
# CONFIG_LCD_TDO24M is not set
|
||||
# CONFIG_LCD_VGG2432A4 is not set
|
||||
# CONFIG_LCD_PLATFORM is not set
|
||||
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
|
||||
|
@ -818,6 +832,7 @@ CONFIG_LCD_LTV350QV=y
|
|||
# CONFIG_DISPLAY_SUPPORT is not set
|
||||
# CONFIG_LOGO is not set
|
||||
CONFIG_SOUND=m
|
||||
CONFIG_SOUND_OSS_CORE=y
|
||||
CONFIG_SND=m
|
||||
CONFIG_SND_TIMER=m
|
||||
CONFIG_SND_PCM=m
|
||||
|
@ -848,28 +863,32 @@ CONFIG_USB_SUPPORT=y
|
|||
# CONFIG_USB_ARCH_HAS_EHCI is not set
|
||||
# CONFIG_USB_OTG_WHITELIST is not set
|
||||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
||||
# CONFIG_USB_MUSB_HDRC is not set
|
||||
# CONFIG_USB_GADGET_MUSB_HDRC is not set
|
||||
|
||||
#
|
||||
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
|
||||
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
|
||||
#
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FS is not set
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=2
|
||||
CONFIG_USB_GADGET_SELECTED=y
|
||||
# CONFIG_USB_GADGET_AMD5536UDC is not set
|
||||
# CONFIG_USB_GADGET_AT91 is not set
|
||||
CONFIG_USB_GADGET_ATMEL_USBA=y
|
||||
CONFIG_USB_ATMEL_USBA=y
|
||||
# CONFIG_USB_GADGET_FSL_USB2 is not set
|
||||
# CONFIG_USB_GADGET_NET2280 is not set
|
||||
# CONFIG_USB_GADGET_PXA25X is not set
|
||||
# CONFIG_USB_GADGET_M66592 is not set
|
||||
# CONFIG_USB_GADGET_PXA27X is not set
|
||||
# CONFIG_USB_GADGET_GOKU is not set
|
||||
# CONFIG_USB_GADGET_LH7A40X is not set
|
||||
# CONFIG_USB_GADGET_OMAP is not set
|
||||
# CONFIG_USB_GADGET_PXA25X is not set
|
||||
# CONFIG_USB_GADGET_PXA27X is not set
|
||||
# CONFIG_USB_GADGET_S3C2410 is not set
|
||||
# CONFIG_USB_GADGET_AT91 is not set
|
||||
# CONFIG_USB_GADGET_M66592 is not set
|
||||
# CONFIG_USB_GADGET_AMD5536UDC is not set
|
||||
# CONFIG_USB_GADGET_FSL_QE is not set
|
||||
# CONFIG_USB_GADGET_NET2280 is not set
|
||||
# CONFIG_USB_GADGET_GOKU is not set
|
||||
# CONFIG_USB_GADGET_DUMMY_HCD is not set
|
||||
CONFIG_USB_GADGET_DUALSPEED=y
|
||||
CONFIG_USB_ZERO=m
|
||||
|
@ -887,7 +906,7 @@ CONFIG_MMC=y
|
|||
# CONFIG_MMC_UNSAFE_RESUME is not set
|
||||
|
||||
#
|
||||
# MMC/SD Card Drivers
|
||||
# MMC/SD/SDIO Card Drivers
|
||||
#
|
||||
CONFIG_MMC_BLOCK=y
|
||||
CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
|
@ -895,10 +914,11 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
|||
# CONFIG_MMC_TEST is not set
|
||||
|
||||
#
|
||||
# MMC/SD Host Controller Drivers
|
||||
# MMC/SD/SDIO Host Controller Drivers
|
||||
#
|
||||
# CONFIG_MMC_SDHCI is not set
|
||||
CONFIG_MMC_ATMELMCI=y
|
||||
# CONFIG_MMC_ATMELMCI_DMA is not set
|
||||
CONFIG_MMC_SPI=m
|
||||
# CONFIG_MEMSTICK is not set
|
||||
CONFIG_NEW_LEDS=y
|
||||
|
@ -918,6 +938,7 @@ CONFIG_LEDS_GPIO=m
|
|||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=m
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
|
||||
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
|
||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
CONFIG_RTC_LIB=y
|
||||
|
@ -950,25 +971,31 @@ CONFIG_RTC_INTF_DEV=y
|
|||
# CONFIG_RTC_DRV_M41T80 is not set
|
||||
# CONFIG_RTC_DRV_S35390A is not set
|
||||
# CONFIG_RTC_DRV_FM3130 is not set
|
||||
# CONFIG_RTC_DRV_RX8581 is not set
|
||||
|
||||
#
|
||||
# SPI RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_M41T94 is not set
|
||||
# CONFIG_RTC_DRV_DS1305 is not set
|
||||
# CONFIG_RTC_DRV_DS1390 is not set
|
||||
# CONFIG_RTC_DRV_MAX6902 is not set
|
||||
# CONFIG_RTC_DRV_R9701 is not set
|
||||
# CONFIG_RTC_DRV_RS5C348 is not set
|
||||
# CONFIG_RTC_DRV_DS3234 is not set
|
||||
|
||||
#
|
||||
# Platform RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_DS1286 is not set
|
||||
# CONFIG_RTC_DRV_DS1511 is not set
|
||||
# CONFIG_RTC_DRV_DS1553 is not set
|
||||
# CONFIG_RTC_DRV_DS1742 is not set
|
||||
# CONFIG_RTC_DRV_STK17TA8 is not set
|
||||
# CONFIG_RTC_DRV_M48T86 is not set
|
||||
# CONFIG_RTC_DRV_M48T35 is not set
|
||||
# CONFIG_RTC_DRV_M48T59 is not set
|
||||
# CONFIG_RTC_DRV_BQ4802 is not set
|
||||
# CONFIG_RTC_DRV_V3020 is not set
|
||||
|
||||
#
|
||||
|
@ -989,6 +1016,8 @@ CONFIG_DMA_ENGINE=y
|
|||
# CONFIG_NET_DMA is not set
|
||||
CONFIG_DMATEST=m
|
||||
# CONFIG_UIO is not set
|
||||
# CONFIG_STAGING is not set
|
||||
CONFIG_STAGING_EXCLUDE_BUILD=y
|
||||
|
||||
#
|
||||
# File systems
|
||||
|
@ -998,12 +1027,17 @@ CONFIG_EXT2_FS=m
|
|||
# CONFIG_EXT2_FS_XIP is not set
|
||||
CONFIG_EXT3_FS=m
|
||||
# CONFIG_EXT3_FS_XATTR is not set
|
||||
# CONFIG_EXT4DEV_FS is not set
|
||||
CONFIG_EXT4_FS=m
|
||||
CONFIG_EXT4DEV_COMPAT=y
|
||||
# CONFIG_EXT4_FS_XATTR is not set
|
||||
CONFIG_JBD=m
|
||||
# CONFIG_JBD_DEBUG is not set
|
||||
CONFIG_JBD2=m
|
||||
# CONFIG_JBD2_DEBUG is not set
|
||||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
# CONFIG_FS_POSIX_ACL is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_OCFS2_FS is not set
|
||||
# CONFIG_DNOTIFY is not set
|
||||
|
@ -1036,6 +1070,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
|
|||
CONFIG_PROC_FS=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_PROC_SYSCTL=y
|
||||
CONFIG_PROC_PAGE_MONITOR=y
|
||||
CONFIG_SYSFS=y
|
||||
CONFIG_TMPFS=y
|
||||
# CONFIG_TMPFS_POSIX_ACL is not set
|
||||
|
@ -1054,7 +1089,8 @@ CONFIG_TMPFS=y
|
|||
# CONFIG_EFS_FS is not set
|
||||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_JFFS2_FS_DEBUG=0
|
||||
# CONFIG_JFFS2_FS_WRITEBUFFER is not set
|
||||
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
|
||||
# CONFIG_JFFS2_SUMMARY is not set
|
||||
# CONFIG_JFFS2_FS_XATTR is not set
|
||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||
|
@ -1088,6 +1124,7 @@ CONFIG_LOCKD=y
|
|||
CONFIG_LOCKD_V4=y
|
||||
CONFIG_NFS_COMMON=y
|
||||
CONFIG_SUNRPC=y
|
||||
# CONFIG_SUNRPC_REGISTER_V4 is not set
|
||||
# CONFIG_RPCSEC_GSS_KRB5 is not set
|
||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||
# CONFIG_SMB_FS is not set
|
||||
|
@ -1185,10 +1222,21 @@ CONFIG_DEBUG_BUGVERBOSE=y
|
|||
CONFIG_FRAME_POINTER=y
|
||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
# CONFIG_KPROBES_SANITY_TEST is not set
|
||||
# CONFIG_BACKTRACE_SELF_TEST is not set
|
||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||
# CONFIG_LKDTM is not set
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
|
||||
#
|
||||
# Tracers
|
||||
#
|
||||
# CONFIG_IRQSOFF_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
|
||||
#
|
||||
|
@ -1196,17 +1244,26 @@ CONFIG_FRAME_POINTER=y
|
|||
#
|
||||
# CONFIG_KEYS is not set
|
||||
# CONFIG_SECURITY is not set
|
||||
# CONFIG_SECURITYFS is not set
|
||||
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
|
||||
CONFIG_CRYPTO=y
|
||||
|
||||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
CONFIG_CRYPTO_FIPS=y
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
CONFIG_CRYPTO_AEAD=m
|
||||
CONFIG_CRYPTO_AEAD2=y
|
||||
CONFIG_CRYPTO_BLKCIPHER=m
|
||||
CONFIG_CRYPTO_BLKCIPHER2=y
|
||||
CONFIG_CRYPTO_HASH=m
|
||||
CONFIG_CRYPTO_HASH2=y
|
||||
CONFIG_CRYPTO_RNG=m
|
||||
CONFIG_CRYPTO_RNG2=y
|
||||
CONFIG_CRYPTO_MANAGER=m
|
||||
CONFIG_CRYPTO_MANAGER2=y
|
||||
# CONFIG_CRYPTO_GF128MUL is not set
|
||||
# CONFIG_CRYPTO_NULL is not set
|
||||
# CONFIG_CRYPTO_CRYPTD is not set
|
||||
|
@ -1257,7 +1314,7 @@ CONFIG_CRYPTO_SHA1=m
|
|||
#
|
||||
# Ciphers
|
||||
#
|
||||
# CONFIG_CRYPTO_AES is not set
|
||||
CONFIG_CRYPTO_AES=m
|
||||
# CONFIG_CRYPTO_ANUBIS is not set
|
||||
# CONFIG_CRYPTO_ARC4 is not set
|
||||
# CONFIG_CRYPTO_BLOWFISH is not set
|
||||
|
@ -1278,14 +1335,17 @@ CONFIG_CRYPTO_DES=m
|
|||
#
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
|
||||
#
|
||||
# Random Number Generation
|
||||
#
|
||||
CONFIG_CRYPTO_ANSI_CPRNG=m
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
#
|
||||
CONFIG_BITREVERSE=y
|
||||
# CONFIG_GENERIC_FIND_FIRST_BIT is not set
|
||||
# CONFIG_GENERIC_FIND_NEXT_BIT is not set
|
||||
CONFIG_CRC_CCITT=m
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRC_T10DIF=m
|
||||
|
|
|
@ -967,28 +967,28 @@ static inline void configure_usart0_pins(void)
|
|||
{
|
||||
u32 pin_mask = (1 << 8) | (1 << 9); /* RXD & TXD */
|
||||
|
||||
select_peripheral(PIOA, pin_mask, PERIPH_B, 0);
|
||||
select_peripheral(PIOA, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP);
|
||||
}
|
||||
|
||||
static inline void configure_usart1_pins(void)
|
||||
{
|
||||
u32 pin_mask = (1 << 17) | (1 << 18); /* RXD & TXD */
|
||||
|
||||
select_peripheral(PIOA, pin_mask, PERIPH_A, 0);
|
||||
select_peripheral(PIOA, pin_mask, PERIPH_A, AT32_GPIOF_PULLUP);
|
||||
}
|
||||
|
||||
static inline void configure_usart2_pins(void)
|
||||
{
|
||||
u32 pin_mask = (1 << 26) | (1 << 27); /* RXD & TXD */
|
||||
|
||||
select_peripheral(PIOB, pin_mask, PERIPH_B, 0);
|
||||
select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP);
|
||||
}
|
||||
|
||||
static inline void configure_usart3_pins(void)
|
||||
{
|
||||
u32 pin_mask = (1 << 18) | (1 << 17); /* RXD & TXD */
|
||||
|
||||
select_peripheral(PIOB, pin_mask, PERIPH_B, 0);
|
||||
select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP);
|
||||
}
|
||||
|
||||
static struct platform_device *__initdata at32_usarts[4];
|
||||
|
|
|
@ -4,6 +4,7 @@ menu "HP Simulator drivers"
|
|||
|
||||
config HP_SIMETH
|
||||
bool "Simulated Ethernet "
|
||||
depends on NET
|
||||
|
||||
config HP_SIMSERIAL
|
||||
bool "Simulated serial driver support"
|
||||
|
|
|
@ -48,7 +48,7 @@ config RUNTIME_DEBUG
|
|||
help
|
||||
If you say Y here, some debugging macros will do run-time checking.
|
||||
If you say N here, those macros will mostly turn to no-ops. See
|
||||
include/asm-mips/debug.h for debuging macros.
|
||||
arch/mips/include/asm/debug.h for debugging macros.
|
||||
If unsure, say N.
|
||||
|
||||
endmenu
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -35,6 +35,16 @@
|
|||
mtc0 \reg, CP0_TCSTATUS
|
||||
_ehb
|
||||
.endm
|
||||
#elif defined(CONFIG_CPU_MIPSR2)
|
||||
.macro local_irq_enable reg=t0
|
||||
ei
|
||||
irq_enable_hazard
|
||||
.endm
|
||||
|
||||
.macro local_irq_disable reg=t0
|
||||
di
|
||||
irq_disable_hazard
|
||||
.endm
|
||||
#else
|
||||
.macro local_irq_enable reg=t0
|
||||
mfc0 \reg, CP0_STATUS
|
||||
|
|
|
@ -50,9 +50,8 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
|
|||
static inline __attribute_const__ __u64 __arch_swab64(__u64 x)
|
||||
{
|
||||
__asm__(
|
||||
" dsbh %0, %1 \n"
|
||||
" dshd %0, %0 \n"
|
||||
" drotr %0, %0, 32 \n"
|
||||
" dsbh %0, %1\n"
|
||||
" dshd %0, %0"
|
||||
: "=r" (x)
|
||||
: "r" (x));
|
||||
|
||||
|
|
|
@ -232,7 +232,7 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
|
|||
*/
|
||||
#ifdef __MIPSEB__
|
||||
#define ELF_DATA ELFDATA2MSB
|
||||
#elif __MIPSEL__
|
||||
#elif defined(__MIPSEL__)
|
||||
#define ELF_DATA ELFDATA2LSB
|
||||
#endif
|
||||
#define ELF_ARCH EM_MIPS
|
||||
|
|
|
@ -111,6 +111,7 @@ EXPORT_SYMBOL(dma_alloc_coherent);
|
|||
void dma_free_noncoherent(struct device *dev, size_t size, void *vaddr,
|
||||
dma_addr_t dma_handle)
|
||||
{
|
||||
plat_unmap_dma_mem(dma_handle);
|
||||
free_pages((unsigned long) vaddr, get_order(size));
|
||||
}
|
||||
|
||||
|
@ -121,6 +122,8 @@ void dma_free_coherent(struct device *dev, size_t size, void *vaddr,
|
|||
{
|
||||
unsigned long addr = (unsigned long) vaddr;
|
||||
|
||||
plat_unmap_dma_mem(dma_handle);
|
||||
|
||||
if (!plat_device_is_coherent(dev))
|
||||
addr = CAC_ADDR(addr);
|
||||
|
||||
|
|
|
@ -44,9 +44,12 @@ static inline void flush_tlb_mm(struct mm_struct *mm)
|
|||
{
|
||||
BUG_ON(mm == &init_mm); /* Should never happen */
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
#if 1 || defined(CONFIG_SMP)
|
||||
flush_tlb_all();
|
||||
#else
|
||||
/* FIXME: currently broken, causing space id and protection ids
|
||||
* to go out of sync, resulting in faults on userspace accesses.
|
||||
*/
|
||||
if (mm) {
|
||||
if (mm->context != 0)
|
||||
free_sid(mm->context);
|
||||
|
|
|
@ -41,6 +41,7 @@ $(obj)/4xx.o: BOOTCFLAGS += -mcpu=405
|
|||
$(obj)/ebony.o: BOOTCFLAGS += -mcpu=405
|
||||
$(obj)/cuboot-taishan.o: BOOTCFLAGS += -mcpu=405
|
||||
$(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=405
|
||||
$(obj)/cuboot-acadia.o: BOOTCFLAGS += -mcpu=405
|
||||
$(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405
|
||||
$(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405
|
||||
|
||||
|
|
|
@ -479,17 +479,20 @@ _GLOBAL(_tlbil_pid)
|
|||
* (no broadcast)
|
||||
*/
|
||||
_GLOBAL(_tlbil_va)
|
||||
mfmsr r10
|
||||
wrteei 0
|
||||
slwi r4,r4,16
|
||||
mtspr SPRN_MAS6,r4 /* assume AS=0 for now */
|
||||
tlbsx 0,r3
|
||||
mfspr r4,SPRN_MAS1 /* check valid */
|
||||
andis. r3,r4,MAS1_VALID@h
|
||||
beqlr
|
||||
beq 1f
|
||||
rlwinm r4,r4,0,1,31
|
||||
mtspr SPRN_MAS1,r4
|
||||
tlbwe
|
||||
msync
|
||||
isync
|
||||
1: wrtee r10
|
||||
blr
|
||||
#endif /* CONFIG_FSL_BOOKE */
|
||||
|
||||
|
|
|
@ -556,6 +556,7 @@ unsigned long rh_alloc_fixed(rh_info_t * info, unsigned long start, int size, co
|
|||
be = blk->start + blk->size;
|
||||
if (s >= bs && e <= be)
|
||||
break;
|
||||
blk = NULL;
|
||||
}
|
||||
|
||||
if (blk == NULL)
|
||||
|
|
|
@ -507,6 +507,9 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
|
|||
{
|
||||
struct hstate *hstate = hstate_file(file);
|
||||
int mmu_psize = shift_to_mmu_psize(huge_page_shift(hstate));
|
||||
|
||||
if (!mmu_huge_psizes[mmu_psize])
|
||||
return -EINVAL;
|
||||
return slice_get_unmapped_area(addr, len, flags, mmu_psize, 1, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -901,10 +901,17 @@ static void mark_reserved_regions_for_nid(int nid)
|
|||
if (end_pfn > node_ar.end_pfn)
|
||||
reserve_size = (node_ar.end_pfn << PAGE_SHIFT)
|
||||
- (start_pfn << PAGE_SHIFT);
|
||||
dbg("reserve_bootmem %lx %lx nid=%d\n", physbase,
|
||||
reserve_size, node_ar.nid);
|
||||
reserve_bootmem_node(NODE_DATA(node_ar.nid), physbase,
|
||||
reserve_size, BOOTMEM_DEFAULT);
|
||||
/*
|
||||
* Only worry about *this* node, others may not
|
||||
* yet have valid NODE_DATA().
|
||||
*/
|
||||
if (node_ar.nid == nid) {
|
||||
dbg("reserve_bootmem %lx %lx nid=%d\n",
|
||||
physbase, reserve_size, node_ar.nid);
|
||||
reserve_bootmem_node(NODE_DATA(node_ar.nid),
|
||||
physbase, reserve_size,
|
||||
BOOTMEM_DEFAULT);
|
||||
}
|
||||
/*
|
||||
* if reserved region is contained in the active region
|
||||
* then done.
|
||||
|
@ -929,7 +936,6 @@ static void mark_reserved_regions_for_nid(int nid)
|
|||
void __init do_init_bootmem(void)
|
||||
{
|
||||
int nid;
|
||||
unsigned int i;
|
||||
|
||||
min_low_pfn = 0;
|
||||
max_low_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT;
|
||||
|
|
|
@ -413,6 +413,9 @@ static int axon_msi_probe(struct of_device *device,
|
|||
MSIC_CTRL_IRQ_ENABLE | MSIC_CTRL_ENABLE |
|
||||
MSIC_CTRL_FIFO_SIZE);
|
||||
|
||||
msic->read_offset = dcr_read(msic->dcr_host, MSIC_WRITE_OFFSET_REG)
|
||||
& MSIC_FIFO_SIZE_MASK;
|
||||
|
||||
device->dev.platform_data = msic;
|
||||
|
||||
ppc_md.setup_msi_irqs = axon_msi_setup_msi_irqs;
|
||||
|
|
|
@ -55,6 +55,8 @@ config GENERIC_HARDIRQS
|
|||
|
||||
config GENERIC_HARDIRQS_NO__DO_IRQ
|
||||
def_bool y
|
||||
depends on SUPERH32 && (!SH_DREAMCAST && !SH_SH4202_MICRODEV && \
|
||||
!SH_7751_SYSTEMH && !HD64461)
|
||||
|
||||
config GENERIC_IRQ_PROBE
|
||||
def_bool y
|
||||
|
|
|
@ -62,6 +62,8 @@ struct sparc_stackf {
|
|||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <asm/system.h>
|
||||
|
||||
static inline bool pt_regs_is_syscall(struct pt_regs *regs)
|
||||
{
|
||||
return (regs->psr & PSR_SYSCALL);
|
||||
|
@ -72,6 +74,14 @@ static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
|
|||
return (regs->psr &= ~PSR_SYSCALL);
|
||||
}
|
||||
|
||||
#define arch_ptrace_stop_needed(exit_code, info) \
|
||||
({ flush_user_windows(); \
|
||||
current_thread_info()->w_saved != 0; \
|
||||
})
|
||||
|
||||
#define arch_ptrace_stop(exit_code, info) \
|
||||
synchronize_user_stack()
|
||||
|
||||
#define user_mode(regs) (!((regs)->psr & PSR_PS))
|
||||
#define instruction_pointer(regs) ((regs)->pc)
|
||||
#define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP])
|
||||
|
|
|
@ -114,6 +114,7 @@ struct sparc_trapf {
|
|||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/threads.h>
|
||||
#include <asm/system.h>
|
||||
|
||||
static inline int pt_regs_trap_type(struct pt_regs *regs)
|
||||
{
|
||||
|
@ -130,6 +131,14 @@ static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
|
|||
return (regs->tstate &= ~TSTATE_SYSCALL);
|
||||
}
|
||||
|
||||
#define arch_ptrace_stop_needed(exit_code, info) \
|
||||
({ flush_user_windows(); \
|
||||
get_thread_wsaved() != 0; \
|
||||
})
|
||||
|
||||
#define arch_ptrace_stop(exit_code, info) \
|
||||
synchronize_user_stack()
|
||||
|
||||
struct global_reg_snapshot {
|
||||
unsigned long tstate;
|
||||
unsigned long tpc;
|
||||
|
|
|
@ -520,6 +520,7 @@ config X86_PTRACE_BTS
|
|||
bool "Branch Trace Store"
|
||||
default y
|
||||
depends on X86_DEBUGCTLMSR
|
||||
depends on BROKEN
|
||||
help
|
||||
This adds a ptrace interface to the hardware's branch trace store.
|
||||
|
||||
|
|
|
@ -223,9 +223,15 @@ struct pci_header {
|
|||
} __attribute__((packed));
|
||||
|
||||
/* Function prototypes for bootstrapping */
|
||||
#ifdef CONFIG_VMI
|
||||
extern void vmi_init(void);
|
||||
extern void vmi_activate(void);
|
||||
extern void vmi_bringup(void);
|
||||
extern void vmi_apply_boot_page_allocations(void);
|
||||
#else
|
||||
static inline void vmi_init(void) {}
|
||||
static inline void vmi_activate(void) {}
|
||||
static inline void vmi_bringup(void) {}
|
||||
#endif
|
||||
|
||||
/* State needed to start an application processor in an SMP system. */
|
||||
struct vmi_ap_state {
|
||||
|
|
|
@ -235,8 +235,9 @@ static int iommu_completion_wait(struct amd_iommu *iommu)
|
|||
status &= ~MMIO_STATUS_COM_WAIT_INT_MASK;
|
||||
writel(status, iommu->mmio_base + MMIO_STATUS_OFFSET);
|
||||
|
||||
if (unlikely((i == EXIT_LOOP_COUNT) && printk_ratelimit()))
|
||||
printk(KERN_WARNING "AMD IOMMU: Completion wait loop failed\n");
|
||||
if (unlikely(i == EXIT_LOOP_COUNT))
|
||||
panic("AMD IOMMU: Completion wait loop failed\n");
|
||||
|
||||
out:
|
||||
spin_unlock_irqrestore(&iommu->lock, flags);
|
||||
|
||||
|
|
|
@ -427,6 +427,10 @@ static u8 * __init alloc_command_buffer(struct amd_iommu *iommu)
|
|||
memcpy_toio(iommu->mmio_base + MMIO_CMD_BUF_OFFSET,
|
||||
&entry, sizeof(entry));
|
||||
|
||||
/* set head and tail to zero manually */
|
||||
writel(0x00, iommu->mmio_base + MMIO_CMD_HEAD_OFFSET);
|
||||
writel(0x00, iommu->mmio_base + MMIO_CMD_TAIL_OFFSET);
|
||||
|
||||
iommu_feature_enable(iommu, CONTROL_CMDBUF_EN);
|
||||
|
||||
return cmd_buf;
|
||||
|
@ -1074,7 +1078,8 @@ int __init amd_iommu_init(void)
|
|||
goto free;
|
||||
|
||||
/* IOMMU rlookup table - find the IOMMU for a specific device */
|
||||
amd_iommu_rlookup_table = (void *)__get_free_pages(GFP_KERNEL,
|
||||
amd_iommu_rlookup_table = (void *)__get_free_pages(
|
||||
GFP_KERNEL | __GFP_ZERO,
|
||||
get_order(rlookup_table_size));
|
||||
if (amd_iommu_rlookup_table == NULL)
|
||||
goto free;
|
||||
|
|
|
@ -510,12 +510,9 @@ static void __cpuinit mce_cpu_features(struct cpuinfo_x86 *c)
|
|||
*/
|
||||
void __cpuinit mcheck_init(struct cpuinfo_x86 *c)
|
||||
{
|
||||
static cpumask_t mce_cpus = CPU_MASK_NONE;
|
||||
|
||||
mce_cpu_quirks(c);
|
||||
|
||||
if (mce_dont_init ||
|
||||
cpu_test_and_set(smp_processor_id(), mce_cpus) ||
|
||||
!mce_available(c))
|
||||
return;
|
||||
|
||||
|
|
|
@ -272,13 +272,18 @@ static struct attribute_group mc_attr_group = {
|
|||
.name = "microcode",
|
||||
};
|
||||
|
||||
static void microcode_fini_cpu(int cpu)
|
||||
static void __microcode_fini_cpu(int cpu)
|
||||
{
|
||||
struct ucode_cpu_info *uci = ucode_cpu_info + cpu;
|
||||
|
||||
mutex_lock(µcode_mutex);
|
||||
microcode_ops->microcode_fini_cpu(cpu);
|
||||
uci->valid = 0;
|
||||
}
|
||||
|
||||
static void microcode_fini_cpu(int cpu)
|
||||
{
|
||||
mutex_lock(µcode_mutex);
|
||||
__microcode_fini_cpu(cpu);
|
||||
mutex_unlock(µcode_mutex);
|
||||
}
|
||||
|
||||
|
@ -306,12 +311,16 @@ static int microcode_resume_cpu(int cpu)
|
|||
* to this cpu (a bit of paranoia):
|
||||
*/
|
||||
if (microcode_ops->collect_cpu_info(cpu, &nsig)) {
|
||||
microcode_fini_cpu(cpu);
|
||||
__microcode_fini_cpu(cpu);
|
||||
printk(KERN_ERR "failed to collect_cpu_info for resuming cpu #%d\n",
|
||||
cpu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (memcmp(&nsig, &uci->cpu_sig, sizeof(nsig))) {
|
||||
microcode_fini_cpu(cpu);
|
||||
if ((nsig.sig != uci->cpu_sig.sig) || (nsig.pf != uci->cpu_sig.pf)) {
|
||||
__microcode_fini_cpu(cpu);
|
||||
printk(KERN_ERR "cached ucode doesn't match the resuming cpu #%d\n",
|
||||
cpu);
|
||||
/* Should we look for a new ucode here? */
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -155,6 +155,7 @@ static DEFINE_SPINLOCK(microcode_update_lock);
|
|||
static int collect_cpu_info(int cpu_num, struct cpu_signature *csig)
|
||||
{
|
||||
struct cpuinfo_x86 *c = &cpu_data(cpu_num);
|
||||
unsigned long flags;
|
||||
unsigned int val[2];
|
||||
|
||||
memset(csig, 0, sizeof(*csig));
|
||||
|
@ -174,11 +175,16 @@ static int collect_cpu_info(int cpu_num, struct cpu_signature *csig)
|
|||
csig->pf = 1 << ((val[1] >> 18) & 7);
|
||||
}
|
||||
|
||||
/* serialize access to the physical write to MSR 0x79 */
|
||||
spin_lock_irqsave(µcode_update_lock, flags);
|
||||
|
||||
wrmsr(MSR_IA32_UCODE_REV, 0, 0);
|
||||
/* see notes above for revision 1.07. Apparent chip bug */
|
||||
sync_core();
|
||||
/* get the current revision from MSR 0x8B */
|
||||
rdmsr(MSR_IA32_UCODE_REV, val[0], csig->rev);
|
||||
spin_unlock_irqrestore(µcode_update_lock, flags);
|
||||
|
||||
pr_debug("microcode: collect_cpu_info : sig=0x%x, pf=0x%x, rev=0x%x\n",
|
||||
csig->sig, csig->pf, csig->rev);
|
||||
|
||||
|
|
|
@ -745,10 +745,8 @@ void __init gart_iommu_init(void)
|
|||
unsigned long scratch;
|
||||
long i;
|
||||
|
||||
if (cache_k8_northbridges() < 0 || num_k8_northbridges == 0) {
|
||||
printk(KERN_INFO "PCI-GART: No AMD GART found.\n");
|
||||
if (cache_k8_northbridges() < 0 || num_k8_northbridges == 0)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_AGP_AMD64
|
||||
no_agp = 1;
|
||||
|
|
|
@ -794,6 +794,9 @@ void __init setup_arch(char **cmdline_p)
|
|||
printk(KERN_INFO "Command line: %s\n", boot_command_line);
|
||||
#endif
|
||||
|
||||
/* VMI may relocate the fixmap; do this before touching ioremap area */
|
||||
vmi_init();
|
||||
|
||||
early_cpu_init();
|
||||
early_ioremap_init();
|
||||
|
||||
|
@ -880,13 +883,8 @@ void __init setup_arch(char **cmdline_p)
|
|||
check_efer();
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_VMI) && defined(CONFIG_X86_32)
|
||||
/*
|
||||
* Must be before kernel pagetables are setup
|
||||
* or fixmap area is touched.
|
||||
*/
|
||||
vmi_init();
|
||||
#endif
|
||||
/* Must be before kernel pagetables are setup */
|
||||
vmi_activate();
|
||||
|
||||
/* after early param, so could get panic from serial */
|
||||
reserve_early_setup_data();
|
||||
|
|
|
@ -294,9 +294,7 @@ static void __cpuinit start_secondary(void *unused)
|
|||
* fragile that we want to limit the things done here to the
|
||||
* most necessary things.
|
||||
*/
|
||||
#ifdef CONFIG_VMI
|
||||
vmi_bringup();
|
||||
#endif
|
||||
cpu_init();
|
||||
preempt_disable();
|
||||
smp_callin();
|
||||
|
|
|
@ -960,8 +960,6 @@ static inline int __init activate_vmi(void)
|
|||
|
||||
void __init vmi_init(void)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
if (!vmi_rom)
|
||||
probe_vmi_rom();
|
||||
else
|
||||
|
@ -973,13 +971,21 @@ void __init vmi_init(void)
|
|||
|
||||
reserve_top_address(-vmi_rom->virtual_top);
|
||||
|
||||
local_irq_save(flags);
|
||||
activate_vmi();
|
||||
|
||||
#ifdef CONFIG_X86_IO_APIC
|
||||
/* This is virtual hardware; timer routing is wired correctly */
|
||||
no_timer_check = 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
void vmi_activate(void)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
if (!vmi_rom)
|
||||
return;
|
||||
|
||||
local_irq_save(flags);
|
||||
activate_vmi();
|
||||
local_irq_restore(flags & X86_EFLAGS_IF);
|
||||
}
|
||||
|
||||
|
|
|
@ -53,10 +53,17 @@ do_async_xor(struct dma_chan *chan, struct page *dest, struct page **src_list,
|
|||
int xor_src_cnt;
|
||||
dma_addr_t dma_dest;
|
||||
|
||||
dma_dest = dma_map_page(dma->dev, dest, offset, len, DMA_FROM_DEVICE);
|
||||
for (i = 0; i < src_cnt; i++)
|
||||
/* map the dest bidrectional in case it is re-used as a source */
|
||||
dma_dest = dma_map_page(dma->dev, dest, offset, len, DMA_BIDIRECTIONAL);
|
||||
for (i = 0; i < src_cnt; i++) {
|
||||
/* only map the dest once */
|
||||
if (unlikely(src_list[i] == dest)) {
|
||||
dma_src[i] = dma_dest;
|
||||
continue;
|
||||
}
|
||||
dma_src[i] = dma_map_page(dma->dev, src_list[i], offset,
|
||||
len, DMA_TO_DEVICE);
|
||||
}
|
||||
|
||||
while (src_cnt) {
|
||||
async_flags = flags;
|
||||
|
|
|
@ -688,14 +688,6 @@ void __init acpi_early_init(void)
|
|||
if (acpi_disabled)
|
||||
return;
|
||||
|
||||
/*
|
||||
* ACPI CA initializes acpi_dbg_level to non-zero, which means
|
||||
* we get debug output merely by turning on CONFIG_ACPI_DEBUG.
|
||||
* Turn it off so we don't get output unless the user specifies
|
||||
* acpi.debug_level.
|
||||
*/
|
||||
acpi_dbg_level = 0;
|
||||
|
||||
printk(KERN_INFO PREFIX "Core revision %08x\n", ACPI_CA_VERSION);
|
||||
|
||||
/* enable workarounds, unless strict ACPI spec. compliance */
|
||||
|
|
|
@ -824,32 +824,36 @@ static int __init toshiba_acpi_init(void)
|
|||
toshiba_acpi_exit();
|
||||
return -ENOMEM;
|
||||
}
|
||||
}
|
||||
|
||||
/* Register input device for kill switch */
|
||||
toshiba_acpi.poll_dev = input_allocate_polled_device();
|
||||
if (!toshiba_acpi.poll_dev) {
|
||||
printk(MY_ERR "unable to allocate kill-switch input device\n");
|
||||
toshiba_acpi_exit();
|
||||
return -ENOMEM;
|
||||
}
|
||||
toshiba_acpi.poll_dev->private = &toshiba_acpi;
|
||||
toshiba_acpi.poll_dev->poll = bt_poll_rfkill;
|
||||
toshiba_acpi.poll_dev->poll_interval = 1000; /* msecs */
|
||||
/* Register input device for kill switch */
|
||||
toshiba_acpi.poll_dev = input_allocate_polled_device();
|
||||
if (!toshiba_acpi.poll_dev) {
|
||||
printk(MY_ERR
|
||||
"unable to allocate kill-switch input device\n");
|
||||
toshiba_acpi_exit();
|
||||
return -ENOMEM;
|
||||
}
|
||||
toshiba_acpi.poll_dev->private = &toshiba_acpi;
|
||||
toshiba_acpi.poll_dev->poll = bt_poll_rfkill;
|
||||
toshiba_acpi.poll_dev->poll_interval = 1000; /* msecs */
|
||||
|
||||
toshiba_acpi.poll_dev->input->name = toshiba_acpi.rfk_name;
|
||||
toshiba_acpi.poll_dev->input->id.bustype = BUS_HOST;
|
||||
toshiba_acpi.poll_dev->input->id.vendor = 0x0930; /* Toshiba USB ID */
|
||||
set_bit(EV_SW, toshiba_acpi.poll_dev->input->evbit);
|
||||
set_bit(SW_RFKILL_ALL, toshiba_acpi.poll_dev->input->swbit);
|
||||
input_report_switch(toshiba_acpi.poll_dev->input, SW_RFKILL_ALL, TRUE);
|
||||
input_sync(toshiba_acpi.poll_dev->input);
|
||||
toshiba_acpi.poll_dev->input->name = toshiba_acpi.rfk_name;
|
||||
toshiba_acpi.poll_dev->input->id.bustype = BUS_HOST;
|
||||
/* Toshiba USB ID */
|
||||
toshiba_acpi.poll_dev->input->id.vendor = 0x0930;
|
||||
set_bit(EV_SW, toshiba_acpi.poll_dev->input->evbit);
|
||||
set_bit(SW_RFKILL_ALL, toshiba_acpi.poll_dev->input->swbit);
|
||||
input_report_switch(toshiba_acpi.poll_dev->input,
|
||||
SW_RFKILL_ALL, TRUE);
|
||||
input_sync(toshiba_acpi.poll_dev->input);
|
||||
|
||||
ret = input_register_polled_device(toshiba_acpi.poll_dev);
|
||||
if (ret) {
|
||||
printk(MY_ERR "unable to register kill-switch input device\n");
|
||||
toshiba_acpi_exit();
|
||||
return ret;
|
||||
ret = input_register_polled_device(toshiba_acpi.poll_dev);
|
||||
if (ret) {
|
||||
printk(MY_ERR
|
||||
"unable to register kill-switch input device\n");
|
||||
toshiba_acpi_exit();
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -64,7 +64,7 @@ u32 acpi_dbg_level = ACPI_DEBUG_DEFAULT;
|
|||
|
||||
/* Debug switch - layer (component) mask */
|
||||
|
||||
u32 acpi_dbg_layer = ACPI_COMPONENT_DEFAULT | ACPI_ALL_DRIVERS;
|
||||
u32 acpi_dbg_layer = 0;
|
||||
u32 acpi_gbl_nesting_level = 0;
|
||||
|
||||
/* Debugger globals */
|
||||
|
|
|
@ -4050,17 +4050,70 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
|
|||
{ "ST3160023AS", "3.42", ATA_HORKAGE_NONCQ },
|
||||
|
||||
/* Seagate NCQ + FLUSH CACHE firmware bug */
|
||||
{ "ST31500341AS", "9JU138", ATA_HORKAGE_NONCQ |
|
||||
{ "ST31500341AS", "SD15", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST31000333AS", "9FZ136", ATA_HORKAGE_NONCQ |
|
||||
{ "ST31500341AS", "SD16", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3640623AS", "9FZ164", ATA_HORKAGE_NONCQ |
|
||||
{ "ST31500341AS", "SD17", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3640323AS", "9FZ134", ATA_HORKAGE_NONCQ |
|
||||
{ "ST31500341AS", "SD18", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3320813AS", "9FZ182", ATA_HORKAGE_NONCQ |
|
||||
{ "ST31500341AS", "SD19", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3320613AS", "9FZ162", ATA_HORKAGE_NONCQ |
|
||||
|
||||
{ "ST31000333AS", "SD15", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST31000333AS", "SD16", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST31000333AS", "SD17", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST31000333AS", "SD18", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST31000333AS", "SD19", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
|
||||
{ "ST3640623AS", "SD15", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3640623AS", "SD16", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3640623AS", "SD17", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3640623AS", "SD18", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3640623AS", "SD19", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
|
||||
{ "ST3640323AS", "SD15", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3640323AS", "SD16", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3640323AS", "SD17", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3640323AS", "SD18", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3640323AS", "SD19", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
|
||||
{ "ST3320813AS", "SD15", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3320813AS", "SD16", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3320813AS", "SD17", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3320813AS", "SD18", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3320813AS", "SD19", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
|
||||
{ "ST3320613AS", "SD15", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3320613AS", "SD16", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3320613AS", "SD17", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3320613AS", "SD18", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
{ "ST3320613AS", "SD19", ATA_HORKAGE_NONCQ |
|
||||
ATA_HORKAGE_FIRMWARE_WARN },
|
||||
|
||||
/* Blacklist entries taken from Silicon Image 3124/3132
|
||||
|
|
|
@ -183,7 +183,9 @@ static unsigned long hpt366_filter(struct ata_device *adev, unsigned long mask)
|
|||
mask &= ~(0xF8 << ATA_SHIFT_UDMA);
|
||||
if (hpt_dma_blacklisted(adev, "UDMA4", bad_ata66_4))
|
||||
mask &= ~(0xF0 << ATA_SHIFT_UDMA);
|
||||
}
|
||||
} else if (adev->class == ATA_DEV_ATAPI)
|
||||
mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA);
|
||||
|
||||
return ata_bmdma_mode_filter(adev, mask);
|
||||
}
|
||||
|
||||
|
@ -211,11 +213,15 @@ static u32 hpt36x_find_mode(struct ata_port *ap, int speed)
|
|||
|
||||
static int hpt36x_cable_detect(struct ata_port *ap)
|
||||
{
|
||||
u8 ata66;
|
||||
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
|
||||
u8 ata66;
|
||||
|
||||
/*
|
||||
* Each channel of pata_hpt366 occupies separate PCI function
|
||||
* as the primary channel and bit1 indicates the cable type.
|
||||
*/
|
||||
pci_read_config_byte(pdev, 0x5A, &ata66);
|
||||
if (ata66 & (1 << ap->port_no))
|
||||
if (ata66 & 2)
|
||||
return ATA_CBL_PATA40;
|
||||
return ATA_CBL_PATA80;
|
||||
}
|
||||
|
|
|
@ -1693,6 +1693,11 @@ static int rebuild_lun_table(ctlr_info_t *h, int first_time)
|
|||
for (i = 0; i <= h->highest_lun; i++) {
|
||||
int j;
|
||||
drv_found = 0;
|
||||
|
||||
/* skip holes in the array from already deleted drives */
|
||||
if (h->drv[i].raid_level == -1)
|
||||
continue;
|
||||
|
||||
for (j = 0; j < num_luns; j++) {
|
||||
memcpy(&lunid, &ld_buff->LUN[j][0], 4);
|
||||
lunid = le32_to_cpu(lunid);
|
||||
|
|
|
@ -2081,10 +2081,6 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf,
|
|||
if (!q)
|
||||
return -ENXIO;
|
||||
|
||||
rq = blk_get_request(q, READ, GFP_KERNEL);
|
||||
if (!rq)
|
||||
return -ENOMEM;
|
||||
|
||||
cdi->last_sense = 0;
|
||||
|
||||
while (nframes) {
|
||||
|
@ -2096,9 +2092,17 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf,
|
|||
|
||||
len = nr * CD_FRAMESIZE_RAW;
|
||||
|
||||
ret = blk_rq_map_user(q, rq, NULL, ubuf, len, GFP_KERNEL);
|
||||
if (ret)
|
||||
rq = blk_get_request(q, READ, GFP_KERNEL);
|
||||
if (!rq) {
|
||||
ret = -ENOMEM;
|
||||
break;
|
||||
}
|
||||
|
||||
ret = blk_rq_map_user(q, rq, NULL, ubuf, len, GFP_KERNEL);
|
||||
if (ret) {
|
||||
blk_put_request(rq);
|
||||
break;
|
||||
}
|
||||
|
||||
rq->cmd[0] = GPCMD_READ_CD;
|
||||
rq->cmd[1] = 1 << 2;
|
||||
|
@ -2124,6 +2128,7 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf,
|
|||
|
||||
if (blk_rq_unmap_user(bio))
|
||||
ret = -EFAULT;
|
||||
blk_put_request(rq);
|
||||
|
||||
if (ret)
|
||||
break;
|
||||
|
@ -2133,7 +2138,6 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf,
|
|||
ubuf += len;
|
||||
}
|
||||
|
||||
blk_put_request(rq);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
0x0c U+2640
|
||||
0x0d U+266a
|
||||
0x0e U+266b
|
||||
0x0f U+263c
|
||||
0x0f U+263c U+00a4
|
||||
0x10 U+25b6 U+25ba
|
||||
0x11 U+25c0 U+25c4
|
||||
0x12 U+2195
|
||||
|
@ -55,7 +55,7 @@
|
|||
0x24 U+0024
|
||||
0x25 U+0025
|
||||
0x26 U+0026
|
||||
0x27 U+0027
|
||||
0x27 U+0027 U+00b4
|
||||
0x28 U+0028
|
||||
0x29 U+0029
|
||||
0x2a U+002a
|
||||
|
@ -84,7 +84,7 @@
|
|||
0x41 U+0041 U+00c0 U+00c1 U+00c2 U+00c3
|
||||
0x42 U+0042
|
||||
0x43 U+0043 U+00a9
|
||||
0x44 U+0044
|
||||
0x44 U+0044 U+00d0
|
||||
0x45 U+0045 U+00c8 U+00ca U+00cb
|
||||
0x46 U+0046
|
||||
0x47 U+0047
|
||||
|
@ -140,7 +140,7 @@
|
|||
0x79 U+0079 U+00fd
|
||||
0x7a U+007a
|
||||
0x7b U+007b
|
||||
0x7c U+007c U+00a5
|
||||
0x7c U+007c U+00a6
|
||||
0x7d U+007d
|
||||
0x7e U+007e
|
||||
#
|
||||
|
@ -263,10 +263,10 @@
|
|||
0xe8 U+03a6 U+00d8
|
||||
0xe9 U+0398
|
||||
0xea U+03a9 U+2126
|
||||
0xeb U+03b4
|
||||
0xeb U+03b4 U+00f0
|
||||
0xec U+221e
|
||||
0xed U+03c6 U+00f8
|
||||
0xee U+03b5
|
||||
0xee U+03b5 U+2208
|
||||
0xef U+2229
|
||||
0xf0 U+2261
|
||||
0xf1 U+00b1
|
||||
|
|
|
@ -2274,7 +2274,7 @@ static int do_con_write(struct tty_struct *tty, const unsigned char *buf, int co
|
|||
continue; /* nothing to display */
|
||||
}
|
||||
/* Glyph not found */
|
||||
if ((!(vc->vc_utf && !vc->vc_disp_ctrl) || c < 128) && !(c & ~charmask)) {
|
||||
if ((!(vc->vc_utf && !vc->vc_disp_ctrl) && c < 128) && !(c & ~charmask)) {
|
||||
/* In legacy mode use the glyph we get by a 1:1 mapping.
|
||||
This would make absolutely no sense with Unicode in mind,
|
||||
but do this for ASCII characters since a font may lack
|
||||
|
|
|
@ -21,9 +21,6 @@
|
|||
* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* Xilinx products are not intended for use in life support appliances,
|
||||
* devices, or systems. Use in such applications is expressly prohibited.
|
||||
*
|
||||
* (c) Copyright 2003-2008 Xilinx Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
|
|
|
@ -21,9 +21,6 @@
|
|||
* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* Xilinx products are not intended for use in life support appliances,
|
||||
* devices, or systems. Use in such applications is expressly prohibited.
|
||||
*
|
||||
* (c) Copyright 2003-2008 Xilinx Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
|
|
|
@ -21,9 +21,6 @@
|
|||
* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* Xilinx products are not intended for use in life support appliances,
|
||||
* devices, or systems. Use in such applications is expressly prohibited.
|
||||
*
|
||||
* (c) Copyright 2007-2008 Xilinx Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
|
|
|
@ -21,9 +21,6 @@
|
|||
* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* Xilinx products are not intended for use in life support appliances,
|
||||
* devices, or systems. Use in such applications is expressly prohibited.
|
||||
*
|
||||
* (c) Copyright 2007-2008 Xilinx Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
|
|
|
@ -21,9 +21,6 @@
|
|||
* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* Xilinx products are not intended for use in life support appliances,
|
||||
* devices, or systems. Use in such applications is expressly prohibited.
|
||||
*
|
||||
* (c) Copyright 2002 Xilinx Inc., Systems Engineering Group
|
||||
* (c) Copyright 2004 Xilinx Inc., Systems Engineering Group
|
||||
* (c) Copyright 2007-2008 Xilinx Inc.
|
||||
|
|
|
@ -21,9 +21,6 @@
|
|||
* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* Xilinx products are not intended for use in life support appliances,
|
||||
* devices, or systems. Use in such applications is expressly prohibited.
|
||||
*
|
||||
* (c) Copyright 2003-2007 Xilinx Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
|
|
|
@ -388,7 +388,10 @@ int dma_async_device_register(struct dma_device *device)
|
|||
|
||||
init_completion(&device->done);
|
||||
kref_init(&device->refcount);
|
||||
|
||||
mutex_lock(&dma_list_mutex);
|
||||
device->dev_id = id++;
|
||||
mutex_unlock(&dma_list_mutex);
|
||||
|
||||
/* represent channels in sysfs. Probably want devs too */
|
||||
list_for_each_entry(chan, &device->channels, device_node) {
|
||||
|
|
|
@ -1341,10 +1341,12 @@ static void ioat_dma_start_null_desc(struct ioat_dma_chan *ioat_chan)
|
|||
*/
|
||||
#define IOAT_TEST_SIZE 2000
|
||||
|
||||
DECLARE_COMPLETION(test_completion);
|
||||
static void ioat_dma_test_callback(void *dma_async_param)
|
||||
{
|
||||
printk(KERN_ERR "ioatdma: ioat_dma_test_callback(%p)\n",
|
||||
dma_async_param);
|
||||
complete(&test_completion);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1410,7 +1412,8 @@ static int ioat_dma_self_test(struct ioatdma_device *device)
|
|||
goto free_resources;
|
||||
}
|
||||
device->common.device_issue_pending(dma_chan);
|
||||
msleep(1);
|
||||
|
||||
wait_for_completion_timeout(&test_completion, msecs_to_jiffies(3000));
|
||||
|
||||
if (device->common.device_is_tx_complete(dma_chan, cookie, NULL, NULL)
|
||||
!= DMA_SUCCESS) {
|
||||
|
|
|
@ -85,18 +85,28 @@ iop_adma_run_tx_complete_actions(struct iop_adma_desc_slot *desc,
|
|||
enum dma_ctrl_flags flags = desc->async_tx.flags;
|
||||
u32 src_cnt;
|
||||
dma_addr_t addr;
|
||||
dma_addr_t dest;
|
||||
|
||||
src_cnt = unmap->unmap_src_cnt;
|
||||
dest = iop_desc_get_dest_addr(unmap, iop_chan);
|
||||
if (!(flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
|
||||
addr = iop_desc_get_dest_addr(unmap, iop_chan);
|
||||
dma_unmap_page(dev, addr, len, DMA_FROM_DEVICE);
|
||||
enum dma_data_direction dir;
|
||||
|
||||
if (src_cnt > 1) /* is xor? */
|
||||
dir = DMA_BIDIRECTIONAL;
|
||||
else
|
||||
dir = DMA_FROM_DEVICE;
|
||||
|
||||
dma_unmap_page(dev, dest, len, dir);
|
||||
}
|
||||
|
||||
if (!(flags & DMA_COMPL_SKIP_SRC_UNMAP)) {
|
||||
src_cnt = unmap->unmap_src_cnt;
|
||||
while (src_cnt--) {
|
||||
addr = iop_desc_get_src_addr(unmap,
|
||||
iop_chan,
|
||||
src_cnt);
|
||||
if (addr == dest)
|
||||
continue;
|
||||
dma_unmap_page(dev, addr, len,
|
||||
DMA_TO_DEVICE);
|
||||
}
|
||||
|
|
|
@ -311,17 +311,26 @@ mv_xor_run_tx_complete_actions(struct mv_xor_desc_slot *desc,
|
|||
enum dma_ctrl_flags flags = desc->async_tx.flags;
|
||||
u32 src_cnt;
|
||||
dma_addr_t addr;
|
||||
dma_addr_t dest;
|
||||
|
||||
src_cnt = unmap->unmap_src_cnt;
|
||||
dest = mv_desc_get_dest_addr(unmap);
|
||||
if (!(flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
|
||||
addr = mv_desc_get_dest_addr(unmap);
|
||||
dma_unmap_page(dev, addr, len, DMA_FROM_DEVICE);
|
||||
enum dma_data_direction dir;
|
||||
|
||||
if (src_cnt > 1) /* is xor ? */
|
||||
dir = DMA_BIDIRECTIONAL;
|
||||
else
|
||||
dir = DMA_FROM_DEVICE;
|
||||
dma_unmap_page(dev, dest, len, dir);
|
||||
}
|
||||
|
||||
if (!(flags & DMA_COMPL_SKIP_SRC_UNMAP)) {
|
||||
src_cnt = unmap->unmap_src_cnt;
|
||||
while (src_cnt--) {
|
||||
addr = mv_desc_get_src_addr(unmap,
|
||||
src_cnt);
|
||||
if (addr == dest)
|
||||
continue;
|
||||
dma_unmap_page(dev, addr, len,
|
||||
DMA_TO_DEVICE);
|
||||
}
|
||||
|
|
|
@ -394,6 +394,12 @@ static void edac_device_workq_function(struct work_struct *work_req)
|
|||
|
||||
mutex_lock(&device_ctls_mutex);
|
||||
|
||||
/* If we are being removed, bail out immediately */
|
||||
if (edac_dev->op_state == OP_OFFLINE) {
|
||||
mutex_unlock(&device_ctls_mutex);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Only poll controllers that are running polled and have a check */
|
||||
if ((edac_dev->op_state == OP_RUNNING_POLL) &&
|
||||
(edac_dev->edac_check != NULL)) {
|
||||
|
@ -585,14 +591,14 @@ struct edac_device_ctl_info *edac_device_del_device(struct device *dev)
|
|||
/* mark this instance as OFFLINE */
|
||||
edac_dev->op_state = OP_OFFLINE;
|
||||
|
||||
/* clear workq processing on this instance */
|
||||
edac_device_workq_teardown(edac_dev);
|
||||
|
||||
/* deregister from global list */
|
||||
del_edac_device_from_global_list(edac_dev);
|
||||
|
||||
mutex_unlock(&device_ctls_mutex);
|
||||
|
||||
/* clear workq processing on this instance */
|
||||
edac_device_workq_teardown(edac_dev);
|
||||
|
||||
/* Tear down the sysfs entries for this instance */
|
||||
edac_device_remove_sysfs(edac_dev);
|
||||
|
||||
|
|
|
@ -717,7 +717,7 @@ static int i915_getparam(struct drm_device *dev, void *data,
|
|||
value = dev->pci_device;
|
||||
break;
|
||||
case I915_PARAM_HAS_GEM:
|
||||
value = 1;
|
||||
value = dev_priv->has_gem;
|
||||
break;
|
||||
default:
|
||||
DRM_ERROR("Unknown parameter %d\n", param->param);
|
||||
|
@ -830,6 +830,14 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
|
|||
|
||||
dev_priv->regs = ioremap(base, size);
|
||||
|
||||
#ifdef CONFIG_HIGHMEM64G
|
||||
/* don't enable GEM on PAE - needs agp + set_memory_* interface fixes */
|
||||
dev_priv->has_gem = 0;
|
||||
#else
|
||||
/* enable GEM by default */
|
||||
dev_priv->has_gem = 1;
|
||||
#endif
|
||||
|
||||
i915_gem_load(dev);
|
||||
|
||||
/* Init HWS */
|
||||
|
|
|
@ -106,6 +106,8 @@ struct intel_opregion {
|
|||
typedef struct drm_i915_private {
|
||||
struct drm_device *dev;
|
||||
|
||||
int has_gem;
|
||||
|
||||
void __iomem *regs;
|
||||
drm_local_map_t *sarea;
|
||||
|
||||
|
|
|
@ -2309,7 +2309,14 @@ i915_gem_busy_ioctl(struct drm_device *dev, void *data,
|
|||
}
|
||||
|
||||
obj_priv = obj->driver_private;
|
||||
args->busy = obj_priv->active;
|
||||
/* Don't count being on the flushing list against the object being
|
||||
* done. Otherwise, a buffer left on the flushing list but not getting
|
||||
* flushed (because nobody's flushing that domain) won't ever return
|
||||
* unbusy and get reused by libdrm's bo cache. The other expected
|
||||
* consumer of this interface, OpenGL's occlusion queries, also specs
|
||||
* that the objects get unbusy "eventually" without any interference.
|
||||
*/
|
||||
args->busy = obj_priv->active && obj_priv->last_rendering_seqno != 0;
|
||||
|
||||
drm_gem_object_unreference(obj);
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
|
|
|
@ -44,7 +44,7 @@ void radeon_irq_set_state(struct drm_device *dev, u32 mask, int state)
|
|||
else
|
||||
dev_priv->irq_enable_reg &= ~mask;
|
||||
|
||||
if (!dev->irq_enabled)
|
||||
if (dev->irq_enabled)
|
||||
RADEON_WRITE(RADEON_GEN_INT_CNTL, dev_priv->irq_enable_reg);
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ static void r500_vbl_irq_set_state(struct drm_device *dev, u32 mask, int state)
|
|||
else
|
||||
dev_priv->r500_disp_irq_reg &= ~mask;
|
||||
|
||||
if (!dev->irq_enabled)
|
||||
if (dev->irq_enabled)
|
||||
RADEON_WRITE(R500_DxMODE_INT_MASK, dev_priv->r500_disp_irq_reg);
|
||||
}
|
||||
|
||||
|
|
|
@ -365,6 +365,7 @@ static int cpm_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
|
|||
pmsg = &msgs[tptr];
|
||||
if (pmsg->flags & I2C_M_RD)
|
||||
ret = wait_event_interruptible_timeout(cpm->i2c_wait,
|
||||
(in_be16(&tbdf[tptr].cbd_sc) & BD_SC_NAK) ||
|
||||
!(in_be16(&rbdf[rptr].cbd_sc) & BD_SC_EMPTY),
|
||||
1 * HZ);
|
||||
else
|
||||
|
|
|
@ -92,7 +92,7 @@ static void highlander_i2c_setup(struct highlander_i2c_dev *dev)
|
|||
static void smbus_write_data(u8 *src, u16 *dst, int len)
|
||||
{
|
||||
for (; len > 1; len -= 2) {
|
||||
*dst++ = be16_to_cpup((u16 *)src);
|
||||
*dst++ = be16_to_cpup((__be16 *)src);
|
||||
src += 2;
|
||||
}
|
||||
|
||||
|
@ -103,7 +103,7 @@ static void smbus_write_data(u8 *src, u16 *dst, int len)
|
|||
static void smbus_read_data(u16 *src, u8 *dst, int len)
|
||||
{
|
||||
for (; len > 1; len -= 2) {
|
||||
*(u16 *)dst = cpu_to_be16p(src++);
|
||||
*(__be16 *)dst = cpu_to_be16p(src++);
|
||||
dst += 2;
|
||||
}
|
||||
|
||||
|
|
|
@ -486,7 +486,7 @@ static enum pmcmsptwi_xfer_result pmcmsptwi_xfer_cmd(
|
|||
|
||||
if (cmd->type == MSP_TWI_CMD_WRITE ||
|
||||
cmd->type == MSP_TWI_CMD_WRITE_READ) {
|
||||
__be64 tmp = cpu_to_be64p((u64 *)cmd->write_data);
|
||||
u64 tmp = be64_to_cpup((__be64 *)cmd->write_data);
|
||||
tmp >>= (MSP_MAX_BYTES_PER_RW - cmd->write_len) * 8;
|
||||
dev_dbg(&pmcmsptwi_adapter.dev, "Writing 0x%016llx\n", tmp);
|
||||
pmcmsptwi_writel(tmp & 0x00000000ffffffffLL,
|
||||
|
|
|
@ -56,6 +56,7 @@ enum s3c24xx_i2c_state {
|
|||
struct s3c24xx_i2c {
|
||||
spinlock_t lock;
|
||||
wait_queue_head_t wait;
|
||||
unsigned int suspended:1;
|
||||
|
||||
struct i2c_msg *msg;
|
||||
unsigned int msg_num;
|
||||
|
@ -507,7 +508,7 @@ static int s3c24xx_i2c_doxfer(struct s3c24xx_i2c *i2c, struct i2c_msg *msgs, int
|
|||
unsigned long timeout;
|
||||
int ret;
|
||||
|
||||
if (!(readl(i2c->regs + S3C2410_IICCON) & S3C2410_IICCON_IRQEN))
|
||||
if (i2c->suspended)
|
||||
return -EIO;
|
||||
|
||||
ret = s3c24xx_i2c_set_master(i2c);
|
||||
|
@ -986,17 +987,26 @@ static int s3c24xx_i2c_remove(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
static int s3c24xx_i2c_suspend_late(struct platform_device *dev,
|
||||
pm_message_t msg)
|
||||
{
|
||||
struct s3c24xx_i2c *i2c = platform_get_drvdata(dev);
|
||||
i2c->suspended = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int s3c24xx_i2c_resume(struct platform_device *dev)
|
||||
{
|
||||
struct s3c24xx_i2c *i2c = platform_get_drvdata(dev);
|
||||
|
||||
if (i2c != NULL)
|
||||
s3c24xx_i2c_init(i2c);
|
||||
i2c->suspended = 0;
|
||||
s3c24xx_i2c_init(i2c);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#else
|
||||
#define s3c24xx_i2c_suspend_late NULL
|
||||
#define s3c24xx_i2c_resume NULL
|
||||
#endif
|
||||
|
||||
|
@ -1005,6 +1015,7 @@ static int s3c24xx_i2c_resume(struct platform_device *dev)
|
|||
static struct platform_driver s3c2410_i2c_driver = {
|
||||
.probe = s3c24xx_i2c_probe,
|
||||
.remove = s3c24xx_i2c_remove,
|
||||
.suspend_late = s3c24xx_i2c_suspend_late,
|
||||
.resume = s3c24xx_i2c_resume,
|
||||
.driver = {
|
||||
.owner = THIS_MODULE,
|
||||
|
@ -1015,6 +1026,7 @@ static struct platform_driver s3c2410_i2c_driver = {
|
|||
static struct platform_driver s3c2440_i2c_driver = {
|
||||
.probe = s3c24xx_i2c_probe,
|
||||
.remove = s3c24xx_i2c_remove,
|
||||
.suspend_late = s3c24xx_i2c_suspend_late,
|
||||
.resume = s3c24xx_i2c_resume,
|
||||
.driver = {
|
||||
.owner = THIS_MODULE,
|
||||
|
|
|
@ -81,11 +81,12 @@ static u8 cs5530_udma_filter(ide_drive_t *drive)
|
|||
{
|
||||
ide_hwif_t *hwif = drive->hwif;
|
||||
ide_drive_t *mate = ide_get_pair_dev(drive);
|
||||
u16 *mateid = mate->id;
|
||||
u16 *mateid;
|
||||
u8 mask = hwif->ultra_mask;
|
||||
|
||||
if (mate == NULL)
|
||||
goto out;
|
||||
mateid = mate->id;
|
||||
|
||||
if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {
|
||||
if ((mateid[ATA_ID_FIELD_VALID] & 4) &&
|
||||
|
|
|
@ -104,11 +104,12 @@ static u8 sc1200_udma_filter(ide_drive_t *drive)
|
|||
{
|
||||
ide_hwif_t *hwif = drive->hwif;
|
||||
ide_drive_t *mate = ide_get_pair_dev(drive);
|
||||
u16 *mateid = mate->id;
|
||||
u16 *mateid;
|
||||
u8 mask = hwif->ultra_mask;
|
||||
|
||||
if (mate == NULL)
|
||||
goto out;
|
||||
mateid = mate->id;
|
||||
|
||||
if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {
|
||||
if ((mateid[ATA_ID_FIELD_VALID] & 4) &&
|
||||
|
|
|
@ -115,8 +115,14 @@ static int nodemgr_bus_read(struct csr1212_csr *csr, u64 addr, u16 length,
|
|||
return error;
|
||||
}
|
||||
|
||||
#define OUI_FREECOM_TECHNOLOGIES_GMBH 0x0001db
|
||||
|
||||
static int nodemgr_get_max_rom(quadlet_t *bus_info_data, void *__ci)
|
||||
{
|
||||
/* Freecom FireWire Hard Drive firmware bug */
|
||||
if (be32_to_cpu(bus_info_data[3]) >> 8 == OUI_FREECOM_TECHNOLOGIES_GMBH)
|
||||
return 0;
|
||||
|
||||
return (be32_to_cpu(bus_info_data[2]) >> 8) & 0x3;
|
||||
}
|
||||
|
||||
|
|
|
@ -208,15 +208,18 @@ static void bitmap_checkfree(struct bitmap *bitmap, unsigned long page)
|
|||
*/
|
||||
|
||||
/* IO operations when bitmap is stored near all superblocks */
|
||||
static struct page *read_sb_page(mddev_t *mddev, long offset, unsigned long index)
|
||||
static struct page *read_sb_page(mddev_t *mddev, long offset,
|
||||
struct page *page,
|
||||
unsigned long index, int size)
|
||||
{
|
||||
/* choose a good rdev and read the page from there */
|
||||
|
||||
mdk_rdev_t *rdev;
|
||||
struct list_head *tmp;
|
||||
struct page *page = alloc_page(GFP_KERNEL);
|
||||
sector_t target;
|
||||
|
||||
if (!page)
|
||||
page = alloc_page(GFP_KERNEL);
|
||||
if (!page)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
|
@ -227,7 +230,9 @@ static struct page *read_sb_page(mddev_t *mddev, long offset, unsigned long inde
|
|||
|
||||
target = rdev->sb_start + offset + index * (PAGE_SIZE/512);
|
||||
|
||||
if (sync_page_io(rdev->bdev, target, PAGE_SIZE, page, READ)) {
|
||||
if (sync_page_io(rdev->bdev, target,
|
||||
roundup(size, bdev_hardsect_size(rdev->bdev)),
|
||||
page, READ)) {
|
||||
page->index = index;
|
||||
attach_page_buffers(page, NULL); /* so that free_buffer will
|
||||
* quietly no-op */
|
||||
|
@ -544,7 +549,9 @@ static int bitmap_read_sb(struct bitmap *bitmap)
|
|||
|
||||
bitmap->sb_page = read_page(bitmap->file, 0, bitmap, bytes);
|
||||
} else {
|
||||
bitmap->sb_page = read_sb_page(bitmap->mddev, bitmap->offset, 0);
|
||||
bitmap->sb_page = read_sb_page(bitmap->mddev, bitmap->offset,
|
||||
NULL,
|
||||
0, sizeof(bitmap_super_t));
|
||||
}
|
||||
if (IS_ERR(bitmap->sb_page)) {
|
||||
err = PTR_ERR(bitmap->sb_page);
|
||||
|
@ -957,11 +964,16 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
|
|||
*/
|
||||
page = bitmap->sb_page;
|
||||
offset = sizeof(bitmap_super_t);
|
||||
read_sb_page(bitmap->mddev, bitmap->offset,
|
||||
page,
|
||||
index, count);
|
||||
} else if (file) {
|
||||
page = read_page(file, index, bitmap, count);
|
||||
offset = 0;
|
||||
} else {
|
||||
page = read_sb_page(bitmap->mddev, bitmap->offset, index);
|
||||
page = read_sb_page(bitmap->mddev, bitmap->offset,
|
||||
NULL,
|
||||
index, count);
|
||||
offset = 0;
|
||||
}
|
||||
if (IS_ERR(page)) { /* read error */
|
||||
|
|
|
@ -9,11 +9,11 @@ config DVB_B2C2_FLEXCOP
|
|||
select DVB_STV0297 if !DVB_FE_CUSTOMISE
|
||||
select DVB_BCM3510 if !DVB_FE_CUSTOMISE
|
||||
select DVB_LGDT330X if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE
|
||||
select DVB_S5H1420 if !DVB_FE_CUSTOMISE
|
||||
select DVB_TUNER_ITD1000 if !DVB_FE_CUSTOMISE
|
||||
select DVB_ISL6421 if !DVB_FE_CUSTOMISE
|
||||
select DVB_CX24123 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Support for the digital TV receiver chip made by B2C2 Inc. included in
|
||||
Technisats PCI cards and USB boxes.
|
||||
|
|
|
@ -628,12 +628,14 @@ int flexcop_frontend_init(struct flexcop_device *fc)
|
|||
}
|
||||
|
||||
/* try the cable dvb (stv0297) */
|
||||
fc->fc_i2c_adap[0].no_base_addr = 1;
|
||||
fc->fe = dvb_attach(stv0297_attach, &alps_tdee4_stv0297_config, i2c);
|
||||
if (fc->fe != NULL) {
|
||||
fc->dev_type = FC_CABLE;
|
||||
fc->fe->ops.tuner_ops.set_params = alps_tdee4_stv0297_tuner_set_params;
|
||||
goto fe_found;
|
||||
}
|
||||
fc->fc_i2c_adap[0].no_base_addr = 0;
|
||||
|
||||
/* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */
|
||||
fc->fe = dvb_attach(mt312_attach,
|
||||
|
|
|
@ -47,8 +47,12 @@ static int flexcop_i2c_read4(struct flexcop_i2c_adapter *i2c,
|
|||
int len = r100.tw_sm_c_100.total_bytes, /* remember total_bytes is buflen-1 */
|
||||
ret;
|
||||
|
||||
r100.tw_sm_c_100.no_base_addr_ack_error = i2c->no_base_addr;
|
||||
ret = flexcop_i2c_operation(i2c->fc, &r100);
|
||||
if (ret != 0) {
|
||||
deb_i2c("Retrying operation\n");
|
||||
r100.tw_sm_c_100.no_base_addr_ack_error = i2c->no_base_addr;
|
||||
ret = flexcop_i2c_operation(i2c->fc, &r100);
|
||||
}
|
||||
if (ret != 0) {
|
||||
deb_i2c("read failed. %d\n", ret);
|
||||
return ret;
|
||||
|
|
|
@ -8,7 +8,7 @@ config DVB_BT8XX
|
|||
select DVB_OR51211 if !DVB_FE_CUSTOMISE
|
||||
select DVB_LGDT330X if !DVB_FE_CUSTOMISE
|
||||
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Support for PCI cards based on the Bt8xx PCI bridge. Examples are
|
||||
the Nebula cards, the Pinnacle PCTV cards, the Twinhan DST cards,
|
||||
|
|
|
@ -24,8 +24,8 @@ config DVB_USB_A800
|
|||
tristate "AVerMedia AverTV DVB-T USB 2.0 (A800)"
|
||||
depends on DVB_USB
|
||||
select DVB_DIB3000MC
|
||||
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
|
||||
select DVB_PLL if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver.
|
||||
|
||||
|
@ -34,7 +34,7 @@ config DVB_USB_DIBUSB_MB
|
|||
depends on DVB_USB
|
||||
select DVB_PLL if !DVB_FE_CUSTOMISE
|
||||
select DVB_DIB3000MB
|
||||
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Support for USB 1.1 and 2.0 DVB-T receivers based on reference designs made by
|
||||
DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-B demodulator.
|
||||
|
@ -55,7 +55,7 @@ config DVB_USB_DIBUSB_MC
|
|||
tristate "DiBcom USB DVB-T devices (based on the DiB3000M-C/P) (see help for device list)"
|
||||
depends on DVB_USB
|
||||
select DVB_DIB3000MC
|
||||
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Support for USB2.0 DVB-T receivers based on reference designs made by
|
||||
DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-C/P demodulator.
|
||||
|
@ -73,11 +73,11 @@ config DVB_USB_DIB0700
|
|||
select DVB_DIB7000M
|
||||
select DVB_DIB3000MC
|
||||
select DVB_S5H1411 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MT2266 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
|
||||
select DVB_TUNER_DIB0070
|
||||
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_MT2266 if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The
|
||||
USB bridge is also present in devices having the DiB7700 DVB-T-USB
|
||||
|
@ -95,7 +95,7 @@ config DVB_USB_UMT_010
|
|||
depends on DVB_USB
|
||||
select DVB_PLL if !DVB_FE_CUSTOMISE
|
||||
select DVB_DIB3000MC
|
||||
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver.
|
||||
|
||||
|
@ -107,11 +107,11 @@ config DVB_USB_CXUSB
|
|||
select DVB_LGDT330X if !DVB_FE_CUSTOMISE
|
||||
select DVB_MT352 if !DVB_FE_CUSTOMISE
|
||||
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE
|
||||
select DVB_DIB7000P if !DVB_FE_CUSTOMISE
|
||||
select DVB_TUNER_DIB0070 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Say Y here to support the Conexant USB2.0 hybrid reference design.
|
||||
Currently, only DVB and ATSC modes are supported, analog mode
|
||||
|
@ -124,9 +124,9 @@ config DVB_USB_M920X
|
|||
tristate "Uli m920x DVB-T USB2.0 support"
|
||||
depends on DVB_USB
|
||||
select DVB_MT352 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_TDA827X if !DVB_FE_CUSTOMISE
|
||||
select DVB_TDA1004X if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Say Y here to support the MSI Mega Sky 580 USB2.0 DVB-T receiver.
|
||||
Currently, only devices with a product id of
|
||||
|
@ -137,7 +137,7 @@ config DVB_USB_GL861
|
|||
tristate "Genesys Logic GL861 USB2.0 support"
|
||||
depends on DVB_USB
|
||||
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Say Y here to support the MSI Megasky 580 (55801) DVB-T USB2.0
|
||||
receiver with USB ID 0db0:5581.
|
||||
|
@ -146,7 +146,7 @@ config DVB_USB_AU6610
|
|||
tristate "Alcor Micro AU6610 USB2.0 support"
|
||||
depends on DVB_USB
|
||||
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Say Y here to support the Sigmatek DVB-110 DVB-T USB2.0 receiver.
|
||||
|
||||
|
@ -198,8 +198,8 @@ config DVB_USB_NOVA_T_USB2
|
|||
tristate "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support"
|
||||
depends on DVB_USB
|
||||
select DVB_DIB3000MC
|
||||
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
|
||||
select DVB_PLL if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver.
|
||||
|
||||
|
@ -235,8 +235,8 @@ config DVB_USB_OPERA1
|
|||
config DVB_USB_AF9005
|
||||
tristate "Afatech AF9005 DVB-T USB1.1 support"
|
||||
depends on DVB_USB && EXPERIMENTAL
|
||||
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
|
||||
and the TerraTec Cinergy T USB XE (Rev.1)
|
||||
|
@ -284,7 +284,7 @@ config DVB_USB_DTV5100
|
|||
tristate "AME DTV-5100 USB2.0 DVB-T support"
|
||||
depends on DVB_USB
|
||||
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Say Y here to support the AME DTV-5100 USB2.0 DVB-T receiver.
|
||||
|
||||
|
@ -293,9 +293,9 @@ config DVB_USB_AF9015
|
|||
depends on DVB_USB && EXPERIMENTAL
|
||||
select DVB_AF9013
|
||||
select DVB_PLL if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
|
||||
help
|
||||
Say Y here to support the Afatech AF9015 based DVB-T USB2.0 receiver
|
||||
|
|
|
@ -446,13 +446,13 @@ static int stk7700ph_tuner_attach(struct dvb_usb_adapter *adap)
|
|||
== NULL ? -ENODEV : 0;
|
||||
}
|
||||
|
||||
#define DEFAULT_RC_INTERVAL 150
|
||||
#define DEFAULT_RC_INTERVAL 50
|
||||
|
||||
static u8 rc_request[] = { REQUEST_POLL_RC, 0 };
|
||||
|
||||
/* Number of keypresses to ignore before start repeating */
|
||||
#define RC_REPEAT_DELAY 2
|
||||
#define RC_REPEAT_DELAY_V1_20 5
|
||||
#define RC_REPEAT_DELAY 6
|
||||
#define RC_REPEAT_DELAY_V1_20 10
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -106,7 +106,7 @@ config DVB_BUDGET_CI
|
|||
select DVB_TDA1004X if !DVB_FE_CUSTOMISE
|
||||
select DVB_LNBP21 if !DVB_FE_CUSTOMISE
|
||||
select DVB_TDA10023 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_TDA827X if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
|
||||
select VIDEO_IR
|
||||
help
|
||||
Support for simple SAA7146 based DVB cards
|
||||
|
|
|
@ -831,7 +831,7 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)
|
|||
{
|
||||
int ret = -ENOIOCTLCMD;
|
||||
|
||||
if (!file->f_op->ioctl)
|
||||
if (!file->f_op->ioctl && !file->f_op->unlocked_ioctl)
|
||||
return ret;
|
||||
|
||||
switch (cmd) {
|
||||
|
|
|
@ -9,7 +9,7 @@ config VIDEO_CX18
|
|||
select VIDEO_CX2341X
|
||||
select VIDEO_CS5345
|
||||
select DVB_S5H1409 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
|
||||
---help---
|
||||
This is a video4linux driver for Conexant cx23418 based
|
||||
PCI combo video recorder devices.
|
||||
|
|
|
@ -11,16 +11,16 @@ config VIDEO_CX23885
|
|||
select VIDEO_CX25840
|
||||
select VIDEO_CX2341X
|
||||
select DVB_DIB7000P if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_MT2131 if !DVB_FE_CUSTOMISE
|
||||
select DVB_S5H1409 if !DVB_FE_CUSTOMISE
|
||||
select DVB_S5H1411 if !DVB_FE_CUSTOMISE
|
||||
select DVB_LGDT330X if !DVB_FE_CUSTOMISE
|
||||
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
|
||||
select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
|
||||
select MEDIA_TUNER_MT2131 if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMIZE
|
||||
select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
|
||||
select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
|
||||
select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
|
||||
select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
|
||||
---help---
|
||||
This is a video4linux driver for Conexant 23885 based
|
||||
TV cards.
|
||||
|
|
|
@ -56,12 +56,12 @@ config VIDEO_CX88_DVB
|
|||
select DVB_NXT200X if !DVB_FE_CUSTOMISE
|
||||
select DVB_CX24123 if !DVB_FE_CUSTOMISE
|
||||
select DVB_ISL6421 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE
|
||||
select DVB_S5H1411 if !DVB_FE_CUSTOMISE
|
||||
select DVB_CX24116 if !DVB_FE_CUSTOMISE
|
||||
select DVB_STV0299 if !DVB_FE_CUSTOMISE
|
||||
select DVB_STV0288 if !DVB_FE_CUSTOMISE
|
||||
select DVB_STB6000 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
|
||||
---help---
|
||||
This adds support for DVB/ATSC cards based on the
|
||||
Conexant 2388x chip.
|
||||
|
|
|
@ -549,10 +549,11 @@ static int em28xx_config(struct em28xx *dev)
|
|||
static void em28xx_config_i2c(struct em28xx *dev)
|
||||
{
|
||||
struct v4l2_routing route;
|
||||
int zero = 0;
|
||||
|
||||
route.input = INPUT(dev->ctl_input)->vmux;
|
||||
route.output = 0;
|
||||
em28xx_i2c_call_clients(dev, VIDIOC_INT_RESET, NULL);
|
||||
em28xx_i2c_call_clients(dev, VIDIOC_INT_RESET, &zero);
|
||||
em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route);
|
||||
em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL);
|
||||
}
|
||||
|
|
|
@ -1264,10 +1264,10 @@ static int vidioc_s_jpegcomp(struct file *file, void *priv,
|
|||
struct gspca_dev *gspca_dev = priv;
|
||||
int ret;
|
||||
|
||||
if (mutex_lock_interruptible(&gspca_dev->usb_lock))
|
||||
return -ERESTARTSYS;
|
||||
if (!gspca_dev->sd_desc->set_jcomp)
|
||||
return -EINVAL;
|
||||
if (mutex_lock_interruptible(&gspca_dev->usb_lock))
|
||||
return -ERESTARTSYS;
|
||||
ret = gspca_dev->sd_desc->set_jcomp(gspca_dev, jpegcomp);
|
||||
mutex_unlock(&gspca_dev->usb_lock);
|
||||
return ret;
|
||||
|
|
|
@ -42,7 +42,7 @@ config VIDEO_PVRUSB2_DVB
|
|||
select DVB_S5H1411 if !DVB_FE_CUSTOMISE
|
||||
select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
|
||||
select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
|
||||
select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
|
||||
---help---
|
||||
|
||||
|
|
|
@ -34,9 +34,9 @@ config VIDEO_SAA7134_DVB
|
|||
select DVB_NXT200X if !DVB_FE_CUSTOMISE
|
||||
select DVB_TDA10086 if !DVB_FE_CUSTOMISE
|
||||
select DVB_TDA826X if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_TDA827X if !DVB_FE_CUSTOMISE
|
||||
select DVB_ISL6421 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
|
||||
---help---
|
||||
This adds support for DVB cards based on the
|
||||
Philips saa7134 chip.
|
||||
|
|
|
@ -2008,6 +2008,9 @@ mptscsih_host_reset(struct scsi_cmnd *SCpnt)
|
|||
return FAILED;
|
||||
}
|
||||
|
||||
/* make sure we have no outstanding commands at this stage */
|
||||
mptscsih_flush_running_cmds(hd);
|
||||
|
||||
ioc = hd->ioc;
|
||||
printk(MYIOC_s_INFO_FMT "attempting host reset! (sc=%p)\n",
|
||||
ioc->name, SCpnt);
|
||||
|
|
|
@ -543,9 +543,9 @@ bnx2_free_rx_mem(struct bnx2 *bp)
|
|||
for (j = 0; j < bp->rx_max_pg_ring; j++) {
|
||||
if (rxr->rx_pg_desc_ring[j])
|
||||
pci_free_consistent(bp->pdev, RXBD_RING_SIZE,
|
||||
rxr->rx_pg_desc_ring[i],
|
||||
rxr->rx_pg_desc_mapping[i]);
|
||||
rxr->rx_pg_desc_ring[i] = NULL;
|
||||
rxr->rx_pg_desc_ring[j],
|
||||
rxr->rx_pg_desc_mapping[j]);
|
||||
rxr->rx_pg_desc_ring[j] = NULL;
|
||||
}
|
||||
if (rxr->rx_pg_ring)
|
||||
vfree(rxr->rx_pg_ring);
|
||||
|
|
|
@ -1893,12 +1893,17 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw)
|
|||
ctrl |= E1000_CTRL_PHY_RST;
|
||||
}
|
||||
ret_val = e1000_acquire_swflag_ich8lan(hw);
|
||||
/* Whether or not the swflag was acquired, we need to reset the part */
|
||||
hw_dbg(hw, "Issuing a global reset to ich8lan");
|
||||
ew32(CTRL, (ctrl | E1000_CTRL_RST));
|
||||
msleep(20);
|
||||
|
||||
/* release the swflag because it is not reset by hardware reset */
|
||||
e1000_release_swflag_ich8lan(hw);
|
||||
if (!ret_val) {
|
||||
/* release the swflag because it is not reset by
|
||||
* hardware reset
|
||||
*/
|
||||
e1000_release_swflag_ich8lan(hw);
|
||||
}
|
||||
|
||||
ret_val = e1000e_get_auto_rd_done(hw);
|
||||
if (ret_val) {
|
||||
|
|
|
@ -959,7 +959,7 @@ static void enc28j60_hw_rx(struct net_device *ndev)
|
|||
ndev->stats.rx_packets++;
|
||||
ndev->stats.rx_bytes += len;
|
||||
ndev->last_rx = jiffies;
|
||||
netif_rx(skb);
|
||||
netif_rx_ni(skb);
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
*/
|
||||
|
||||
#ifndef __JME_H_INCLUDED__
|
||||
#define __JME_H_INCLUDEE__
|
||||
#define __JME_H_INCLUDED__
|
||||
|
||||
#define DRV_NAME "jme"
|
||||
#define DRV_VERSION "1.0.3"
|
||||
|
|
|
@ -105,8 +105,6 @@ int mdiobus_register(struct mii_bus *bus)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
bus->state = MDIOBUS_REGISTERED;
|
||||
|
||||
mutex_init(&bus->mdio_lock);
|
||||
|
||||
if (bus->reset)
|
||||
|
@ -123,6 +121,9 @@ int mdiobus_register(struct mii_bus *bus)
|
|||
}
|
||||
}
|
||||
|
||||
if (!err)
|
||||
bus->state = MDIOBUS_REGISTERED;
|
||||
|
||||
pr_info("%s: probed\n", bus->name);
|
||||
|
||||
return err;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue