Răsfoiți Sursa

Merge branches 'x86/pat2' and 'x86/fpu'; commit 'v2.6.28' into x86/core

Ingo Molnar 16 ani în urmă
părinte
comite
79a66b96c3
39 a modificat fișierele cu 126 adăugiri și 102 ștergeri
  1. 7 4
      Documentation/kernel-parameters.txt
  2. 1 1
      MAINTAINERS
  3. 1 1
      Makefile
  4. 2 3
      arch/mips/include/asm/byteorder.h
  5. 1 1
      arch/mips/include/asm/elf.h
  6. 4 1
      arch/parisc/include/asm/tlbflush.h
  7. 1 0
      arch/x86/Kconfig.cpu
  8. 1 1
      arch/x86/kernel/traps.c
  9. 8 8
      arch/x86/mm/pat.c
  10. 0 8
      drivers/acpi/bus.c
  11. 1 1
      drivers/acpi/utilities/utglobal.c
  12. 9 3
      drivers/edac/edac_device.c
  13. 2 2
      drivers/gpu/drm/radeon/radeon_irq.c
  14. 2 1
      drivers/ide/cs5530.c
  15. 2 1
      drivers/ide/sc1200.c
  16. 1 1
      drivers/media/dvb/b2c2/Kconfig
  17. 2 0
      drivers/media/dvb/b2c2/flexcop-fe-tuner.c
  18. 5 1
      drivers/media/dvb/b2c2/flexcop-i2c.c
  19. 1 1
      drivers/media/dvb/bt8xx/Kconfig
  20. 23 23
      drivers/media/dvb/dvb-usb/Kconfig
  21. 3 3
      drivers/media/dvb/dvb-usb/dib0700_devices.c
  22. 1 1
      drivers/media/dvb/ttpci/Kconfig
  23. 1 1
      drivers/media/video/compat_ioctl32.c
  24. 1 1
      drivers/media/video/cx18/Kconfig
  25. 2 2
      drivers/media/video/cx23885/Kconfig
  26. 1 1
      drivers/media/video/cx88/Kconfig
  27. 2 1
      drivers/media/video/em28xx/em28xx-video.c
  28. 2 2
      drivers/media/video/gspca/gspca.c
  29. 1 1
      drivers/media/video/pvrusb2/Kconfig
  30. 2 2
      drivers/media/video/saa7134/Kconfig
  31. 13 15
      drivers/net/ppp_generic.c
  32. 7 0
      drivers/rtc/rtc-isl1208.c
  33. 3 1
      drivers/w1/w1_io.c
  34. 1 1
      include/acpi/acoutput.h
  35. 5 1
      include/acpi/platform/aclinux.h
  36. 3 5
      kernel/cgroup.c
  37. 0 2
      net/bluetooth/rfcomm/core.c
  38. 1 0
      net/socket.c
  39. 3 0
      sound/pci/hda/patch_sigmatel.c

+ 7 - 4
Documentation/kernel-parameters.txt

@@ -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
 			Bits in debug_level correspond to a level in
 			ACPI_DEBUG_PRINT statements, e.g.,
 			ACPI_DEBUG_PRINT statements, e.g.,
 			    ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
 			    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
 			Enable AML "Debug" output, i.e., stores to the Debug
 			object while interpreting AML:
 			object while interpreting AML:
 			    acpi.debug_layer=0xffffffff acpi.debug_level=0x2
 			    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:
 			Enable all messages related to ACPI hardware:
 			    acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
 			    acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
 
 

+ 1 - 1
MAINTAINERS

@@ -4529,7 +4529,7 @@ S:	Maintained
 USB VIDEO CLASS
 USB VIDEO CLASS
 P:	Laurent Pinchart
 P:	Laurent Pinchart
 M:	laurent.pinchart@skynet.be
 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
 L:	video4linux-list@redhat.com
 W:	http://linux-uvc.berlios.de
 W:	http://linux-uvc.berlios.de
 S:	Maintained
 S:	Maintained

+ 1 - 1
Makefile

@@ -1,7 +1,7 @@
 VERSION = 2
 VERSION = 2
 PATCHLEVEL = 6
 PATCHLEVEL = 6
 SUBLEVEL = 28
 SUBLEVEL = 28
-EXTRAVERSION = -rc9
+EXTRAVERSION =
 NAME = Erotic Pickled Herring
 NAME = Erotic Pickled Herring
 
 
 # *DOCUMENTATION*
 # *DOCUMENTATION*

+ 2 - 3
arch/mips/include/asm/byteorder.h

@@ -50,9 +50,8 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
 static inline __attribute_const__ __u64 __arch_swab64(__u64 x)
 static inline __attribute_const__ __u64 __arch_swab64(__u64 x)
 {
 {
 	__asm__(
 	__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)
 	: "r" (x));
 	: "r" (x));
 
 

+ 1 - 1
arch/mips/include/asm/elf.h

@@ -232,7 +232,7 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
  */
  */
 #ifdef __MIPSEB__
 #ifdef __MIPSEB__
 #define ELF_DATA	ELFDATA2MSB
 #define ELF_DATA	ELFDATA2MSB
-#elif __MIPSEL__
+#elif defined(__MIPSEL__)
 #define ELF_DATA	ELFDATA2LSB
 #define ELF_DATA	ELFDATA2LSB
 #endif
 #endif
 #define ELF_ARCH	EM_MIPS
 #define ELF_ARCH	EM_MIPS

+ 4 - 1
arch/parisc/include/asm/tlbflush.h

@@ -44,9 +44,12 @@ static inline void flush_tlb_mm(struct mm_struct *mm)
 {
 {
 	BUG_ON(mm == &init_mm); /* Should never happen */
 	BUG_ON(mm == &init_mm); /* Should never happen */
 
 
-#ifdef CONFIG_SMP
+#if 1 || defined(CONFIG_SMP)
 	flush_tlb_all();
 	flush_tlb_all();
 #else
 #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) {
 		if (mm->context != 0)
 		if (mm->context != 0)
 			free_sid(mm->context);
 			free_sid(mm->context);

+ 1 - 0
arch/x86/Kconfig.cpu

@@ -520,6 +520,7 @@ config X86_PTRACE_BTS
 	bool "Branch Trace Store"
 	bool "Branch Trace Store"
 	default y
 	default y
 	depends on X86_DEBUGCTLMSR
 	depends on X86_DEBUGCTLMSR
+	depends on BROKEN
 	help
 	help
 	  This adds a ptrace interface to the hardware's branch trace store.
 	  This adds a ptrace interface to the hardware's branch trace store.
 
 

+ 1 - 1
arch/x86/kernel/traps.c

@@ -687,7 +687,7 @@ void math_error(void __user *ip)
 
 
 	err = swd & ~cwd & 0x3f;
 	err = swd & ~cwd & 0x3f;
 
 
-#if CONFIG_X86_32
+#ifdef CONFIG_X86_32
 	if (!err)
 	if (!err)
 		return;
 		return;
 #endif
 #endif

+ 8 - 8
arch/x86/mm/pat.c

@@ -684,7 +684,7 @@ int track_pfn_vma_copy(struct vm_area_struct *vma)
 {
 {
 	int retval = 0;
 	int retval = 0;
 	unsigned long i, j;
 	unsigned long i, j;
-	u64 paddr;
+	resource_size_t paddr;
 	unsigned long prot;
 	unsigned long prot;
 	unsigned long vma_start = vma->vm_start;
 	unsigned long vma_start = vma->vm_start;
 	unsigned long vma_end = vma->vm_end;
 	unsigned long vma_end = vma->vm_end;
@@ -746,8 +746,8 @@ int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t prot,
 {
 {
 	int retval = 0;
 	int retval = 0;
 	unsigned long i, j;
 	unsigned long i, j;
-	u64 base_paddr;
-	u64 paddr;
+	resource_size_t base_paddr;
+	resource_size_t paddr;
 	unsigned long vma_start = vma->vm_start;
 	unsigned long vma_start = vma->vm_start;
 	unsigned long vma_end = vma->vm_end;
 	unsigned long vma_end = vma->vm_end;
 	unsigned long vma_size = vma_end - vma_start;
 	unsigned long vma_size = vma_end - vma_start;
@@ -757,12 +757,12 @@ int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t prot,
 
 
 	if (is_linear_pfn_mapping(vma)) {
 	if (is_linear_pfn_mapping(vma)) {
 		/* reserve the whole chunk starting from vm_pgoff */
 		/* reserve the whole chunk starting from vm_pgoff */
-		paddr = (u64)vma->vm_pgoff << PAGE_SHIFT;
+		paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT;
 		return reserve_pfn_range(paddr, vma_size, prot);
 		return reserve_pfn_range(paddr, vma_size, prot);
 	}
 	}
 
 
 	/* reserve page by page using pfn and size */
 	/* reserve page by page using pfn and size */
-	base_paddr = (u64)pfn << PAGE_SHIFT;
+	base_paddr = (resource_size_t)pfn << PAGE_SHIFT;
 	for (i = 0; i < size; i += PAGE_SIZE) {
 	for (i = 0; i < size; i += PAGE_SIZE) {
 		paddr = base_paddr + i;
 		paddr = base_paddr + i;
 		retval = reserve_pfn_range(paddr, PAGE_SIZE, prot);
 		retval = reserve_pfn_range(paddr, PAGE_SIZE, prot);
@@ -790,7 +790,7 @@ void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,
 			unsigned long size)
 			unsigned long size)
 {
 {
 	unsigned long i;
 	unsigned long i;
-	u64 paddr;
+	resource_size_t paddr;
 	unsigned long prot;
 	unsigned long prot;
 	unsigned long vma_start = vma->vm_start;
 	unsigned long vma_start = vma->vm_start;
 	unsigned long vma_end = vma->vm_end;
 	unsigned long vma_end = vma->vm_end;
@@ -801,14 +801,14 @@ void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,
 
 
 	if (is_linear_pfn_mapping(vma)) {
 	if (is_linear_pfn_mapping(vma)) {
 		/* free the whole chunk starting from vm_pgoff */
 		/* free the whole chunk starting from vm_pgoff */
-		paddr = (u64)vma->vm_pgoff << PAGE_SHIFT;
+		paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT;
 		free_pfn_range(paddr, vma_size);
 		free_pfn_range(paddr, vma_size);
 		return;
 		return;
 	}
 	}
 
 
 	if (size != 0 && size != vma_size) {
 	if (size != 0 && size != vma_size) {
 		/* free page by page, using pfn and size */
 		/* free page by page, using pfn and size */
-		paddr = (u64)pfn << PAGE_SHIFT;
+		paddr = (resource_size_t)pfn << PAGE_SHIFT;
 		for (i = 0; i < size; i += PAGE_SIZE) {
 		for (i = 0; i < size; i += PAGE_SIZE) {
 			paddr = paddr + i;
 			paddr = paddr + i;
 			free_pfn_range(paddr, PAGE_SIZE);
 			free_pfn_range(paddr, PAGE_SIZE);

+ 0 - 8
drivers/acpi/bus.c

@@ -688,14 +688,6 @@ void __init acpi_early_init(void)
 	if (acpi_disabled)
 	if (acpi_disabled)
 		return;
 		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);
 	printk(KERN_INFO PREFIX "Core revision %08x\n", ACPI_CA_VERSION);
 
 
 	/* enable workarounds, unless strict ACPI spec. compliance */
 	/* enable workarounds, unless strict ACPI spec. compliance */

+ 1 - 1
drivers/acpi/utilities/utglobal.c

@@ -64,7 +64,7 @@ u32 acpi_dbg_level = ACPI_DEBUG_DEFAULT;
 
 
 /* Debug switch - layer (component) mask */
 /* 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;
 u32 acpi_gbl_nesting_level = 0;
 
 
 /* Debugger globals */
 /* Debugger globals */

+ 9 - 3
drivers/edac/edac_device.c

@@ -394,6 +394,12 @@ static void edac_device_workq_function(struct work_struct *work_req)
 
 
 	mutex_lock(&device_ctls_mutex);
 	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 */
 	/* Only poll controllers that are running polled and have a check */
 	if ((edac_dev->op_state == OP_RUNNING_POLL) &&
 	if ((edac_dev->op_state == OP_RUNNING_POLL) &&
 		(edac_dev->edac_check != NULL)) {
 		(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 */
 	/* mark this instance as OFFLINE */
 	edac_dev->op_state = OP_OFFLINE;
 	edac_dev->op_state = OP_OFFLINE;
 
 
-	/* clear workq processing on this instance */
-	edac_device_workq_teardown(edac_dev);
-
 	/* deregister from global list */
 	/* deregister from global list */
 	del_edac_device_from_global_list(edac_dev);
 	del_edac_device_from_global_list(edac_dev);
 
 
 	mutex_unlock(&device_ctls_mutex);
 	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 */
 	/* Tear down the sysfs entries for this instance */
 	edac_device_remove_sysfs(edac_dev);
 	edac_device_remove_sysfs(edac_dev);
 
 

+ 2 - 2
drivers/gpu/drm/radeon/radeon_irq.c

@@ -44,7 +44,7 @@ void radeon_irq_set_state(struct drm_device *dev, u32 mask, int state)
 	else
 	else
 		dev_priv->irq_enable_reg &= ~mask;
 		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);
 		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
 	else
 		dev_priv->r500_disp_irq_reg &= ~mask;
 		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);
 		RADEON_WRITE(R500_DxMODE_INT_MASK, dev_priv->r500_disp_irq_reg);
 }
 }
 
 

+ 2 - 1
drivers/ide/cs5530.c

@@ -81,11 +81,12 @@ static u8 cs5530_udma_filter(ide_drive_t *drive)
 {
 {
 	ide_hwif_t *hwif = drive->hwif;
 	ide_hwif_t *hwif = drive->hwif;
 	ide_drive_t *mate = ide_get_pair_dev(drive);
 	ide_drive_t *mate = ide_get_pair_dev(drive);
-	u16 *mateid = mate->id;
+	u16 *mateid;
 	u8 mask = hwif->ultra_mask;
 	u8 mask = hwif->ultra_mask;
 
 
 	if (mate == NULL)
 	if (mate == NULL)
 		goto out;
 		goto out;
+	mateid = mate->id;
 
 
 	if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {
 	if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {
 		if ((mateid[ATA_ID_FIELD_VALID] & 4) &&
 		if ((mateid[ATA_ID_FIELD_VALID] & 4) &&

+ 2 - 1
drivers/ide/sc1200.c

@@ -104,11 +104,12 @@ static u8 sc1200_udma_filter(ide_drive_t *drive)
 {
 {
 	ide_hwif_t *hwif = drive->hwif;
 	ide_hwif_t *hwif = drive->hwif;
 	ide_drive_t *mate = ide_get_pair_dev(drive);
 	ide_drive_t *mate = ide_get_pair_dev(drive);
-	u16 *mateid = mate->id;
+	u16 *mateid;
 	u8 mask = hwif->ultra_mask;
 	u8 mask = hwif->ultra_mask;
 
 
 	if (mate == NULL)
 	if (mate == NULL)
 		goto out;
 		goto out;
+	mateid = mate->id;
 
 
 	if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {
 	if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {
 		if ((mateid[ATA_ID_FIELD_VALID] & 4) &&
 		if ((mateid[ATA_ID_FIELD_VALID] & 4) &&

+ 1 - 1
drivers/media/dvb/b2c2/Kconfig

@@ -9,11 +9,11 @@ config DVB_B2C2_FLEXCOP
 	select DVB_STV0297 if !DVB_FE_CUSTOMISE
 	select DVB_STV0297 if !DVB_FE_CUSTOMISE
 	select DVB_BCM3510 if !DVB_FE_CUSTOMISE
 	select DVB_BCM3510 if !DVB_FE_CUSTOMISE
 	select DVB_LGDT330X 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_S5H1420 if !DVB_FE_CUSTOMISE
 	select DVB_TUNER_ITD1000 if !DVB_FE_CUSTOMISE
 	select DVB_TUNER_ITD1000 if !DVB_FE_CUSTOMISE
 	select DVB_ISL6421 if !DVB_FE_CUSTOMISE
 	select DVB_ISL6421 if !DVB_FE_CUSTOMISE
 	select DVB_CX24123 if !DVB_FE_CUSTOMISE
 	select DVB_CX24123 if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
 	help
 	help
 	  Support for the digital TV receiver chip made by B2C2 Inc. included in
 	  Support for the digital TV receiver chip made by B2C2 Inc. included in
 	  Technisats PCI cards and USB boxes.
 	  Technisats PCI cards and USB boxes.

+ 2 - 0
drivers/media/dvb/b2c2/flexcop-fe-tuner.c

@@ -628,12 +628,14 @@ int flexcop_frontend_init(struct flexcop_device *fc)
 	}
 	}
 
 
 	/* try the cable dvb (stv0297) */
 	/* 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);
 	fc->fe = dvb_attach(stv0297_attach, &alps_tdee4_stv0297_config, i2c);
 	if (fc->fe != NULL) {
 	if (fc->fe != NULL) {
 		fc->dev_type = FC_CABLE;
 		fc->dev_type = FC_CABLE;
 		fc->fe->ops.tuner_ops.set_params = alps_tdee4_stv0297_tuner_set_params;
 		fc->fe->ops.tuner_ops.set_params = alps_tdee4_stv0297_tuner_set_params;
 		goto fe_found;
 		goto fe_found;
 	}
 	}
+	fc->fc_i2c_adap[0].no_base_addr = 0;
 
 
 	/* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */
 	/* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */
 	fc->fe = dvb_attach(mt312_attach,
 	fc->fe = dvb_attach(mt312_attach,

+ 5 - 1
drivers/media/dvb/b2c2/flexcop-i2c.c

@@ -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 */
 	int len = r100.tw_sm_c_100.total_bytes, /* remember total_bytes is buflen-1 */
 		ret;
 		ret;
 
 
-	r100.tw_sm_c_100.no_base_addr_ack_error = i2c->no_base_addr;
 	ret = flexcop_i2c_operation(i2c->fc, &r100);
 	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) {
 	if (ret != 0) {
 		deb_i2c("read failed. %d\n", ret);
 		deb_i2c("read failed. %d\n", ret);
 		return ret;
 		return ret;

+ 1 - 1
drivers/media/dvb/bt8xx/Kconfig

@@ -8,7 +8,7 @@ config DVB_BT8XX
 	select DVB_OR51211 if !DVB_FE_CUSTOMISE
 	select DVB_OR51211 if !DVB_FE_CUSTOMISE
 	select DVB_LGDT330X if !DVB_FE_CUSTOMISE
 	select DVB_LGDT330X if !DVB_FE_CUSTOMISE
 	select DVB_ZL10353 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
 	help
 	  Support for PCI cards based on the Bt8xx PCI bridge. Examples are
 	  Support for PCI cards based on the Bt8xx PCI bridge. Examples are
 	  the Nebula cards, the Pinnacle PCTV cards, the Twinhan DST cards,
 	  the Nebula cards, the Pinnacle PCTV cards, the Twinhan DST cards,

+ 23 - 23
drivers/media/dvb/dvb-usb/Kconfig

@@ -24,8 +24,8 @@ config DVB_USB_A800
 	tristate "AVerMedia AverTV DVB-T USB 2.0 (A800)"
 	tristate "AVerMedia AverTV DVB-T USB 2.0 (A800)"
 	depends on DVB_USB
 	depends on DVB_USB
 	select DVB_DIB3000MC
 	select DVB_DIB3000MC
-	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
 	select DVB_PLL if !DVB_FE_CUSTOMISE
 	select DVB_PLL if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
 	help
 	help
 	  Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver.
 	  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
 	depends on DVB_USB
 	select DVB_PLL if !DVB_FE_CUSTOMISE
 	select DVB_PLL if !DVB_FE_CUSTOMISE
 	select DVB_DIB3000MB
 	select DVB_DIB3000MB
-	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
 	help
 	help
 	  Support for USB 1.1 and 2.0 DVB-T receivers based on reference designs made by
 	  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.
 	  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)"
 	tristate "DiBcom USB DVB-T devices (based on the DiB3000M-C/P) (see help for device list)"
 	depends on DVB_USB
 	depends on DVB_USB
 	select DVB_DIB3000MC
 	select DVB_DIB3000MC
-	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
 	help
 	help
 	  Support for USB2.0 DVB-T receivers based on reference designs made by
 	  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.
 	  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_DIB7000M
 	select DVB_DIB3000MC
 	select DVB_DIB3000MC
 	select DVB_S5H1411 if !DVB_FE_CUSTOMISE
 	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 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
 	help
 	  Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The
 	  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
 	  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
 	depends on DVB_USB
 	select DVB_PLL if !DVB_FE_CUSTOMISE
 	select DVB_PLL if !DVB_FE_CUSTOMISE
 	select DVB_DIB3000MC
 	select DVB_DIB3000MC
-	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
 	help
 	help
 	  Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver.
 	  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_LGDT330X if !DVB_FE_CUSTOMISE
 	select DVB_MT352 if !DVB_FE_CUSTOMISE
 	select DVB_MT352 if !DVB_FE_CUSTOMISE
 	select DVB_ZL10353 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_DIB7000P if !DVB_FE_CUSTOMISE
 	select DVB_TUNER_DIB0070 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
 	help
 	  Say Y here to support the Conexant USB2.0 hybrid reference design.
 	  Say Y here to support the Conexant USB2.0 hybrid reference design.
 	  Currently, only DVB and ATSC modes are supported, analog mode
 	  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"
 	tristate "Uli m920x DVB-T USB2.0 support"
 	depends on DVB_USB
 	depends on DVB_USB
 	select DVB_MT352 if !DVB_FE_CUSTOMISE
 	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 DVB_TDA1004X if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
+	select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
 	help
 	help
 	  Say Y here to support the MSI Mega Sky 580 USB2.0 DVB-T receiver.
 	  Say Y here to support the MSI Mega Sky 580 USB2.0 DVB-T receiver.
 	  Currently, only devices with a product id of
 	  Currently, only devices with a product id of
@@ -137,7 +137,7 @@ config DVB_USB_GL861
 	tristate "Genesys Logic GL861 USB2.0 support"
 	tristate "Genesys Logic GL861 USB2.0 support"
 	depends on DVB_USB
 	depends on DVB_USB
 	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
 	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
-	select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
 	help
 	help
 	  Say Y here to support the MSI Megasky 580 (55801) DVB-T USB2.0
 	  Say Y here to support the MSI Megasky 580 (55801) DVB-T USB2.0
 	  receiver with USB ID 0db0:5581.
 	  receiver with USB ID 0db0:5581.
@@ -146,7 +146,7 @@ config DVB_USB_AU6610
 	tristate "Alcor Micro AU6610 USB2.0 support"
 	tristate "Alcor Micro AU6610 USB2.0 support"
 	depends on DVB_USB
 	depends on DVB_USB
 	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
 	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
-	select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
 	help
 	help
 	  Say Y here to support the Sigmatek DVB-110 DVB-T USB2.0 receiver.
 	  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"
 	tristate "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support"
 	depends on DVB_USB
 	depends on DVB_USB
 	select DVB_DIB3000MC
 	select DVB_DIB3000MC
-	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
 	select DVB_PLL if !DVB_FE_CUSTOMISE
 	select DVB_PLL if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
 	help
 	help
 	  Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver.
 	  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
 config DVB_USB_AF9005
 	tristate "Afatech AF9005 DVB-T USB1.1 support"
 	tristate "Afatech AF9005 DVB-T USB1.1 support"
 	depends on DVB_USB && EXPERIMENTAL
 	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
 	help
 	  Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
 	  Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
 	  and the TerraTec Cinergy T USB XE (Rev.1)
 	  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"
 	tristate "AME DTV-5100 USB2.0 DVB-T support"
 	depends on DVB_USB
 	depends on DVB_USB
 	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
 	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
-	select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
 	help
 	help
 	  Say Y here to support the AME DTV-5100 USB2.0 DVB-T receiver.
 	  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
 	depends on DVB_USB && EXPERIMENTAL
 	select DVB_AF9013
 	select DVB_AF9013
 	select DVB_PLL              if !DVB_FE_CUSTOMISE
 	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
 	help
 	  Say Y here to support the Afatech AF9015 based DVB-T USB2.0 receiver
 	  Say Y here to support the Afatech AF9015 based DVB-T USB2.0 receiver

+ 3 - 3
drivers/media/dvb/dvb-usb/dib0700_devices.c

@@ -446,13 +446,13 @@ static int stk7700ph_tuner_attach(struct dvb_usb_adapter *adap)
 		== NULL ? -ENODEV : 0;
 		== NULL ? -ENODEV : 0;
 }
 }
 
 
-#define DEFAULT_RC_INTERVAL 150
+#define DEFAULT_RC_INTERVAL 50
 
 
 static u8 rc_request[] = { REQUEST_POLL_RC, 0 };
 static u8 rc_request[] = { REQUEST_POLL_RC, 0 };
 
 
 /* Number of keypresses to ignore before start repeating */
 /* 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
 
 
 
 
 
 

+ 1 - 1
drivers/media/dvb/ttpci/Kconfig

@@ -106,7 +106,7 @@ config DVB_BUDGET_CI
 	select DVB_TDA1004X if !DVB_FE_CUSTOMISE
 	select DVB_TDA1004X if !DVB_FE_CUSTOMISE
 	select DVB_LNBP21 if !DVB_FE_CUSTOMISE
 	select DVB_LNBP21 if !DVB_FE_CUSTOMISE
 	select DVB_TDA10023 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
 	select VIDEO_IR
 	help
 	help
 	  Support for simple SAA7146 based DVB cards
 	  Support for simple SAA7146 based DVB cards

+ 1 - 1
drivers/media/video/compat_ioctl32.c

@@ -831,7 +831,7 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)
 {
 {
 	int ret = -ENOIOCTLCMD;
 	int ret = -ENOIOCTLCMD;
 
 
-	if (!file->f_op->ioctl)
+	if (!file->f_op->ioctl && !file->f_op->unlocked_ioctl)
 		return ret;
 		return ret;
 
 
 	switch (cmd) {
 	switch (cmd) {

+ 1 - 1
drivers/media/video/cx18/Kconfig

@@ -9,7 +9,7 @@ config VIDEO_CX18
 	select VIDEO_CX2341X
 	select VIDEO_CX2341X
 	select VIDEO_CS5345
 	select VIDEO_CS5345
 	select DVB_S5H1409 if !DVB_FE_CUSTOMISE
 	select DVB_S5H1409 if !DVB_FE_CUSTOMISE
-	select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
 	---help---
 	---help---
 	  This is a video4linux driver for Conexant cx23418 based
 	  This is a video4linux driver for Conexant cx23418 based
 	  PCI combo video recorder devices.
 	  PCI combo video recorder devices.

+ 2 - 2
drivers/media/video/cx23885/Kconfig

@@ -11,16 +11,16 @@ config VIDEO_CX23885
 	select VIDEO_CX25840
 	select VIDEO_CX25840
 	select VIDEO_CX2341X
 	select VIDEO_CX2341X
 	select DVB_DIB7000P if !DVB_FE_CUSTOMISE
 	select DVB_DIB7000P if !DVB_FE_CUSTOMISE
-	select MEDIA_TUNER_MT2131 if !DVB_FE_CUSTOMISE
 	select DVB_S5H1409 if !DVB_FE_CUSTOMISE
 	select DVB_S5H1409 if !DVB_FE_CUSTOMISE
 	select DVB_S5H1411 if !DVB_FE_CUSTOMISE
 	select DVB_S5H1411 if !DVB_FE_CUSTOMISE
 	select DVB_LGDT330X if !DVB_FE_CUSTOMISE
 	select DVB_LGDT330X if !DVB_FE_CUSTOMISE
 	select DVB_ZL10353 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_XC2028 if !DVB_FE_CUSTOMIZE
 	select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
 	select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
 	select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
 	select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
 	select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
 	select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
-	select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
 	---help---
 	---help---
 	  This is a video4linux driver for Conexant 23885 based
 	  This is a video4linux driver for Conexant 23885 based
 	  TV cards.
 	  TV cards.

+ 1 - 1
drivers/media/video/cx88/Kconfig

@@ -56,12 +56,12 @@ config VIDEO_CX88_DVB
 	select DVB_NXT200X if !DVB_FE_CUSTOMISE
 	select DVB_NXT200X if !DVB_FE_CUSTOMISE
 	select DVB_CX24123 if !DVB_FE_CUSTOMISE
 	select DVB_CX24123 if !DVB_FE_CUSTOMISE
 	select DVB_ISL6421 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_S5H1411 if !DVB_FE_CUSTOMISE
 	select DVB_CX24116 if !DVB_FE_CUSTOMISE
 	select DVB_CX24116 if !DVB_FE_CUSTOMISE
 	select DVB_STV0299 if !DVB_FE_CUSTOMISE
 	select DVB_STV0299 if !DVB_FE_CUSTOMISE
 	select DVB_STV0288 if !DVB_FE_CUSTOMISE
 	select DVB_STV0288 if !DVB_FE_CUSTOMISE
 	select DVB_STB6000 if !DVB_FE_CUSTOMISE
 	select DVB_STB6000 if !DVB_FE_CUSTOMISE
+	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
 	---help---
 	---help---
 	  This adds support for DVB/ATSC cards based on the
 	  This adds support for DVB/ATSC cards based on the
 	  Conexant 2388x chip.
 	  Conexant 2388x chip.

+ 2 - 1
drivers/media/video/em28xx/em28xx-video.c

@@ -549,10 +549,11 @@ static int em28xx_config(struct em28xx *dev)
 static void em28xx_config_i2c(struct em28xx *dev)
 static void em28xx_config_i2c(struct em28xx *dev)
 {
 {
 	struct v4l2_routing route;
 	struct v4l2_routing route;
+	int zero = 0;
 
 
 	route.input = INPUT(dev->ctl_input)->vmux;
 	route.input = INPUT(dev->ctl_input)->vmux;
 	route.output = 0;
 	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_INT_S_VIDEO_ROUTING, &route);
 	em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL);
 	em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL);
 }
 }

+ 2 - 2
drivers/media/video/gspca/gspca.c

@@ -1264,10 +1264,10 @@ static int vidioc_s_jpegcomp(struct file *file, void *priv,
 	struct gspca_dev *gspca_dev = priv;
 	struct gspca_dev *gspca_dev = priv;
 	int ret;
 	int ret;
 
 
-	if (mutex_lock_interruptible(&gspca_dev->usb_lock))
-		return -ERESTARTSYS;
 	if (!gspca_dev->sd_desc->set_jcomp)
 	if (!gspca_dev->sd_desc->set_jcomp)
 		return -EINVAL;
 		return -EINVAL;
+	if (mutex_lock_interruptible(&gspca_dev->usb_lock))
+		return -ERESTARTSYS;
 	ret = gspca_dev->sd_desc->set_jcomp(gspca_dev, jpegcomp);
 	ret = gspca_dev->sd_desc->set_jcomp(gspca_dev, jpegcomp);
 	mutex_unlock(&gspca_dev->usb_lock);
 	mutex_unlock(&gspca_dev->usb_lock);
 	return ret;
 	return ret;

+ 1 - 1
drivers/media/video/pvrusb2/Kconfig

@@ -42,7 +42,7 @@ config VIDEO_PVRUSB2_DVB
 	select DVB_S5H1411 if !DVB_FE_CUSTOMISE
 	select DVB_S5H1411 if !DVB_FE_CUSTOMISE
 	select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
 	select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
 	select MEDIA_TUNER_TDA18271 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
 	select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
 	---help---
 	---help---
 
 

+ 2 - 2
drivers/media/video/saa7134/Kconfig

@@ -34,9 +34,9 @@ config VIDEO_SAA7134_DVB
 	select DVB_NXT200X if !DVB_FE_CUSTOMISE
 	select DVB_NXT200X if !DVB_FE_CUSTOMISE
 	select DVB_TDA10086 if !DVB_FE_CUSTOMISE
 	select DVB_TDA10086 if !DVB_FE_CUSTOMISE
 	select DVB_TDA826X 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 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---
 	---help---
 	  This adds support for DVB cards based on the
 	  This adds support for DVB cards based on the
 	  Philips saa7134 chip.
 	  Philips saa7134 chip.

+ 13 - 15
drivers/net/ppp_generic.c

@@ -116,6 +116,7 @@ struct ppp {
 	unsigned long	last_xmit;	/* jiffies when last pkt sent 9c */
 	unsigned long	last_xmit;	/* jiffies when last pkt sent 9c */
 	unsigned long	last_recv;	/* jiffies when last pkt rcvd a0 */
 	unsigned long	last_recv;	/* jiffies when last pkt rcvd a0 */
 	struct net_device *dev;		/* network interface device a4 */
 	struct net_device *dev;		/* network interface device a4 */
+	int		closing;	/* is device closing down? a8 */
 #ifdef CONFIG_PPP_MULTILINK
 #ifdef CONFIG_PPP_MULTILINK
 	int		nxchan;		/* next channel to send something on */
 	int		nxchan;		/* next channel to send something on */
 	u32		nxseq;		/* next sequence number to send */
 	u32		nxseq;		/* next sequence number to send */
@@ -995,7 +996,7 @@ ppp_xmit_process(struct ppp *ppp)
 	struct sk_buff *skb;
 	struct sk_buff *skb;
 
 
 	ppp_xmit_lock(ppp);
 	ppp_xmit_lock(ppp);
-	if (ppp->dev) {
+	if (!ppp->closing) {
 		ppp_push(ppp);
 		ppp_push(ppp);
 		while (!ppp->xmit_pending
 		while (!ppp->xmit_pending
 		       && (skb = skb_dequeue(&ppp->file.xq)))
 		       && (skb = skb_dequeue(&ppp->file.xq)))
@@ -1463,8 +1464,7 @@ static inline void
 ppp_do_recv(struct ppp *ppp, struct sk_buff *skb, struct channel *pch)
 ppp_do_recv(struct ppp *ppp, struct sk_buff *skb, struct channel *pch)
 {
 {
 	ppp_recv_lock(ppp);
 	ppp_recv_lock(ppp);
-	/* ppp->dev == 0 means interface is closing down */
-	if (ppp->dev)
+	if (!ppp->closing)
 		ppp_receive_frame(ppp, skb, pch);
 		ppp_receive_frame(ppp, skb, pch);
 	else
 	else
 		kfree_skb(skb);
 		kfree_skb(skb);
@@ -2498,18 +2498,16 @@ init_ppp_file(struct ppp_file *pf, int kind)
  */
  */
 static void ppp_shutdown_interface(struct ppp *ppp)
 static void ppp_shutdown_interface(struct ppp *ppp)
 {
 {
-	struct net_device *dev;
-
 	mutex_lock(&all_ppp_mutex);
 	mutex_lock(&all_ppp_mutex);
-	ppp_lock(ppp);
-	dev = ppp->dev;
-	ppp->dev = NULL;
-	ppp_unlock(ppp);
 	/* This will call dev_close() for us. */
 	/* This will call dev_close() for us. */
-	if (dev) {
-		unregister_netdev(dev);
-		free_netdev(dev);
-	}
+	ppp_lock(ppp);
+	if (!ppp->closing) {
+		ppp->closing = 1;
+		ppp_unlock(ppp);
+		unregister_netdev(ppp->dev);
+	} else
+		ppp_unlock(ppp);
+
 	cardmap_set(&all_ppp_units, ppp->file.index, NULL);
 	cardmap_set(&all_ppp_units, ppp->file.index, NULL);
 	ppp->file.dead = 1;
 	ppp->file.dead = 1;
 	ppp->owner = NULL;
 	ppp->owner = NULL;
@@ -2554,7 +2552,7 @@ static void ppp_destroy_interface(struct ppp *ppp)
 	if (ppp->xmit_pending)
 	if (ppp->xmit_pending)
 		kfree_skb(ppp->xmit_pending);
 		kfree_skb(ppp->xmit_pending);
 
 
-	kfree(ppp);
+	free_netdev(ppp->dev);
 }
 }
 
 
 /*
 /*
@@ -2616,7 +2614,7 @@ ppp_connect_channel(struct channel *pch, int unit)
 	if (pch->file.hdrlen > ppp->file.hdrlen)
 	if (pch->file.hdrlen > ppp->file.hdrlen)
 		ppp->file.hdrlen = pch->file.hdrlen;
 		ppp->file.hdrlen = pch->file.hdrlen;
 	hdrlen = pch->file.hdrlen + 2;	/* for protocol bytes */
 	hdrlen = pch->file.hdrlen + 2;	/* for protocol bytes */
-	if (ppp->dev && hdrlen > ppp->dev->hard_header_len)
+	if (hdrlen > ppp->dev->hard_header_len)
 		ppp->dev->hard_header_len = hdrlen;
 		ppp->dev->hard_header_len = hdrlen;
 	list_add_tail(&pch->clist, &ppp->channels);
 	list_add_tail(&pch->clist, &ppp->channels);
 	++ppp->n_channels;
 	++ppp->n_channels;

+ 7 - 0
drivers/rtc/rtc-isl1208.c

@@ -328,6 +328,13 @@ isl1208_i2c_set_time(struct i2c_client *client, struct rtc_time const *tm)
 	int sr;
 	int sr;
 	u8 regs[ISL1208_RTC_SECTION_LEN] = { 0, };
 	u8 regs[ISL1208_RTC_SECTION_LEN] = { 0, };
 
 
+	/* The clock has an 8 bit wide bcd-coded register (they never learn)
+	 * for the year. tm_year is an offset from 1900 and we are interested
+	 * in the 2000-2099 range, so any value less than 100 is invalid.
+	 */
+	if (tm->tm_year < 100)
+		return -EINVAL;
+
 	regs[ISL1208_REG_SC] = bin2bcd(tm->tm_sec);
 	regs[ISL1208_REG_SC] = bin2bcd(tm->tm_sec);
 	regs[ISL1208_REG_MN] = bin2bcd(tm->tm_min);
 	regs[ISL1208_REG_MN] = bin2bcd(tm->tm_min);
 	regs[ISL1208_REG_HR] = bin2bcd(tm->tm_hour) | ISL1208_REG_HR_MIL;
 	regs[ISL1208_REG_HR] = bin2bcd(tm->tm_hour) | ISL1208_REG_HR_MIL;

+ 3 - 1
drivers/w1/w1_io.c

@@ -356,7 +356,9 @@ int w1_reset_select_slave(struct w1_slave *sl)
 		w1_write_8(sl->master, W1_SKIP_ROM);
 		w1_write_8(sl->master, W1_SKIP_ROM);
 	else {
 	else {
 		u8 match[9] = {W1_MATCH_ROM, };
 		u8 match[9] = {W1_MATCH_ROM, };
-		memcpy(&match[1], (u8 *)&sl->reg_num, 8);
+		u64 rn = le64_to_cpu(*((u64*)&sl->reg_num));
+
+		memcpy(&match[1], &rn, 8);
 		w1_write_block(sl->master, match, 9);
 		w1_write_block(sl->master, match, 9);
 	}
 	}
 	return 0;
 	return 0;

+ 1 - 1
include/acpi/acoutput.h

@@ -172,7 +172,7 @@
 
 
 /* Defaults for debug_level, debug and normal */
 /* Defaults for debug_level, debug and normal */
 
 
-#define ACPI_DEBUG_DEFAULT          (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT)
+#define ACPI_DEBUG_DEFAULT          (ACPI_LV_INFO)
 #define ACPI_NORMAL_DEFAULT         (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT)
 #define ACPI_NORMAL_DEFAULT         (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT)
 #define ACPI_DEBUG_ALL              (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL)
 #define ACPI_DEBUG_ALL              (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL)
 
 

+ 5 - 1
include/acpi/platform/aclinux.h

@@ -141,6 +141,10 @@ static inline void *acpi_os_acquire_object(acpi_cache_t * cache)
 /*
 /*
  * We need to show where it is safe to preempt execution of ACPICA
  * We need to show where it is safe to preempt execution of ACPICA
  */
  */
-#define ACPI_PREEMPTION_POINT()	cond_resched()
+#define ACPI_PREEMPTION_POINT()		\
+	do {				\
+		if (!irqs_disabled())	\
+			cond_resched();	\
+	} while (0)
 
 
 #endif				/* __ACLINUX_H__ */
 #endif				/* __ACLINUX_H__ */

+ 3 - 5
kernel/cgroup.c

@@ -1024,7 +1024,7 @@ static int cgroup_get_sb(struct file_system_type *fs_type,
 		if (ret == -EBUSY) {
 		if (ret == -EBUSY) {
 			mutex_unlock(&cgroup_mutex);
 			mutex_unlock(&cgroup_mutex);
 			mutex_unlock(&inode->i_mutex);
 			mutex_unlock(&inode->i_mutex);
-			goto drop_new_super;
+			goto free_cg_links;
 		}
 		}
 
 
 		/* EBUSY should be the only error here */
 		/* EBUSY should be the only error here */
@@ -1073,10 +1073,11 @@ static int cgroup_get_sb(struct file_system_type *fs_type,
 
 
 	return simple_set_mnt(mnt, sb);
 	return simple_set_mnt(mnt, sb);
 
 
+ free_cg_links:
+	free_cg_links(&tmp_cg_links);
  drop_new_super:
  drop_new_super:
 	up_write(&sb->s_umount);
 	up_write(&sb->s_umount);
 	deactivate_super(sb);
 	deactivate_super(sb);
-	free_cg_links(&tmp_cg_links);
 	return ret;
 	return ret;
 }
 }
 
 
@@ -2934,9 +2935,6 @@ int cgroup_clone(struct task_struct *tsk, struct cgroup_subsys *subsys,
  again:
  again:
 	root = subsys->root;
 	root = subsys->root;
 	if (root == &rootnode) {
 	if (root == &rootnode) {
-		printk(KERN_INFO
-		       "Not cloning cgroup for unused subsystem %s\n",
-		       subsys->name);
 		mutex_unlock(&cgroup_mutex);
 		mutex_unlock(&cgroup_mutex);
 		return 0;
 		return 0;
 	}
 	}

+ 0 - 2
net/bluetooth/rfcomm/core.c

@@ -1786,8 +1786,6 @@ static inline void rfcomm_accept_connection(struct rfcomm_session *s)
 	if (err < 0)
 	if (err < 0)
 		return;
 		return;
 
 
-	__module_get(nsock->ops->owner);
-
 	/* Set our callbacks */
 	/* Set our callbacks */
 	nsock->sk->sk_data_ready   = rfcomm_l2data_ready;
 	nsock->sk->sk_data_ready   = rfcomm_l2data_ready;
 	nsock->sk->sk_state_change = rfcomm_l2state_change;
 	nsock->sk->sk_state_change = rfcomm_l2state_change;

+ 1 - 0
net/socket.c

@@ -2307,6 +2307,7 @@ int kernel_accept(struct socket *sock, struct socket **newsock, int flags)
 	}
 	}
 
 
 	(*newsock)->ops = sock->ops;
 	(*newsock)->ops = sock->ops;
+	__module_get((*newsock)->ops->owner);
 
 
 done:
 done:
 	return err;
 	return err;

+ 3 - 0
sound/pci/hda/patch_sigmatel.c

@@ -859,6 +859,7 @@ static struct hda_verb stac92hd83xxx_core_init[] = {
 
 
 	/* power state controls amps */
 	/* power state controls amps */
 	{ 0x01, AC_VERB_SET_EAPD, 1 << 2},
 	{ 0x01, AC_VERB_SET_EAPD, 1 << 2},
+	{}
 };
 };
 
 
 static struct hda_verb stac92hd71bxx_core_init[] = {
 static struct hda_verb stac92hd71bxx_core_init[] = {
@@ -870,6 +871,7 @@ static struct hda_verb stac92hd71bxx_core_init[] = {
 	{ 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
 	{ 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
 	{ 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
 	{ 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
 	{ 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
 	{ 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+	{}
 };
 };
 
 
 #define HD_DISABLE_PORTF 2
 #define HD_DISABLE_PORTF 2
@@ -1667,6 +1669,7 @@ static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = {
 	/* SigmaTel reference board */
 	/* SigmaTel reference board */
 	SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
 	SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
 		      "DFI LanParty", STAC_92HD71BXX_REF),
 		      "DFI LanParty", STAC_92HD71BXX_REF),
+	{} /* terminator */
 };
 };
 
 
 static unsigned int ref92hd71bxx_pin_configs[11] = {
 static unsigned int ref92hd71bxx_pin_configs[11] = {