Skip to contentSkip to conversation

linux-next: Tree for June 9

PATCH In review Stephen Rothwell 7 participants 22 messages Jun 9, 2010 – Jul 2, 2010

Subsystems (6)
lore
Share & tools
lore
#0 lore raw

Hi all,

Changes since 20100608:

My fixes tree contains:
v4l-dvb: update gfp/slab.h includes
arm: update gfp/slab.h includes
davinci: update gfp/slab.h includes
ocfs2: update gfp/slab.h includes
acpi: update gfp/slab.h includes

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

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/v2.6/next/ ). If you are tracking the linux-next tree using git, you should not use "git pull" to do so as that will try to merge the new linux-next release with the old one. You should use "git fetch" as mentioned in the FAQ on the wiki (see below).

You can see which trees have been included by looking in the Next/Trees file in the source. There are also quilt-import.log and merge.log files in the Next directory. Between each merge, the tree was built with a ppc64_defconfig for powerpc and an allmodconfig for x86_64. After the final fixups (if any), it is also built with powerpc allnoconfig (32 and 64 bit), ppc44x_defconfig and allyesconfig (minus CONFIG_PROFILE_ALL_BRANCHES - this fails its final link) and i386, sparc and sparc64 defconfig. These builds also have CONFIG_ENABLE_WARN_DEPRECATED, CONFIG_ENABLE_MUST_CHECK and CONFIG_DEBUG_INFO disabled when necessary.

Below is a summary of the state of the merge.

We are up to 164 trees (counting Linus' and 22 trees of patches pending for Linus' tree), more are welcome (even if they are currently empty). Thanks to those who have contributed, and to those who haven't, please do.

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next . If maintainers want to give advice about cross compilers/configs that work, we are always open to add more builds.

Thanks to Jan Dittmer for adding the linux-next tree to his build tests at http://l4x.org/k/ , the guys at http://test.kernel.org/ and Randy Dunlap for doing many randconfig builds.

There is a wiki covering stuff to do with linux-next at
http://linux.f-seidel.de/linux-next/pmwiki/ . Thanks to Frank Seidel.

Signature · 185 lines
Cheers,
Stephen Rothwell                    [email protected]

$ git checkout master
$ git reset --hard stable
Merging origin/master
Merging fixes/fixes
Merging arm-current/master
Merging m68k-current/for-linus
Merging powerpc-merge/merge
Merging sparc-current/master
Merging scsi-rc-fixes/master
Merging net-current/master
Merging sound-current/for-linus
Merging pci-current/for-linus
Merging wireless-current/master
Merging kbuild-current/for-linus
Merging quilt/driver-core.current
Merging quilt/tty.current
Merging quilt/usb.current
Merging quilt/staging.current
Merging cpufreq-current/fixes
Merging input-current/for-linus
Merging md-current/for-linus
Merging audit-current/for-linus
Merging crypto-current/master
Merging ide-curent/master
Merging dwmw2/master
Merging gcl-current/merge
Merging arm/devel
Merging davinci/davinci-next
Merging i.MX/for-next
Merging msm/for-next
Merging omap/for-next
Merging pxa/for-next
Merging samsung/next-samsung
Merging avr32/avr32-arch
Merging blackfin/for-linus
Merging cris/for-next
Merging ia64/test
Merging m68k/for-next
Merging m68knommu/for-next
Merging microblaze/next
Merging mips/mips-for-linux-next
Merging parisc/next
Merging powerpc/next
Merging 4xx/next
Merging 52xx-and-virtex/next
CONFLICT (content): Merge conflict in drivers/serial/mpc52xx_uart.c
Merging galak/next
Merging s390/features
Merging sh/master
Merging genesis/master
CONFLICT (content): Merge conflict in include/linux/serial_sci.h
Merging sparc/master
Merging tile/master
Merging xtensa/master
Merging ceph/for-next
Merging cifs/master
Merging configfs/linux-next
Merging ecryptfs/next
CONFLICT (content): Merge conflict in fs/ecryptfs/main.c
Merging ext3/for_next
Merging ext4/next
Merging fatfs/master
Merging fuse/for-next
Merging gfs2/master
Merging jfs/next
Merging logfs/master
CONFLICT (content): Merge conflict in fs/logfs/logfs.h
Merging nfs/linux-next
Merging nfsd/nfsd-next
Merging nilfs2/for-next
Merging ocfs2/linux-next
Merging squashfs/master
Merging udf/for_next
Merging v9fs/for-next
Merging ubifs/linux-next
Merging xfs/master
Merging vfs/for-next
Merging pci/linux-next
Merging hid/for-next
Merging quilt/i2c
Merging bjdooks-i2c/next-i2c
CONFLICT (content): Merge conflict in arch/arm/plat-omap/i2c.c
CONFLICT (content): Merge conflict in drivers/i2c/busses/i2c-cpm.c
CONFLICT (content): Merge conflict in drivers/i2c/busses/i2c-mpc.c
Merging quilt/jdelvare-hwmon
Merging quilt/kernel-doc
Merging v4l-dvb/master
Merging kbuild/for-next
Merging kconfig/for-next
Merging ide/master
Merging libata/NEXT
Merging infiniband/for-next
Merging acpi/test
Merging idle-test/idle-test
Merging ieee1394/for-next
Merging ubi/linux-next
Merging kvm/linux-next
Merging dlm/next
Merging ibft/master
Merging swiotlb/master
Merging scsi/master
Merging async_tx/next
Merging net/master
Merging wireless/master
CONFLICT (content): Merge conflict in drivers/net/wireless/wl12xx/wl1271.h
CONFLICT (content): Merge conflict in drivers/net/wireless/wl12xx/wl1271_cmd.h
Merging mtd/master
Merging crypto/master
Merging sound/for-next
Merging cpufreq/next
Merging quilt/rr
CONFLICT (content): Merge conflict in kernel/module.c
Merging mmc/next
Merging input/next
Merging lsm/for-next
Merging block/for-next
Merging quilt/device-mapper
Merging embedded/master
Merging firmware/master
Merging pcmcia/master
Merging battery/master
Merging leds/for-mm
Merging backlight/for-mm
Merging kgdb/kgdb-next
Merging slab/for-next
Merging uclinux/for-next
Merging md/for-next
Merging mfd/for-next
Merging hdlc/hdlc-next
Merging drm/drm-next
Merging viafb/viafb-next
Merging voltage/for-next
Merging security-testing/next
Merging lblnet/master
Merging agp/agp-next
Merging uwb/for-upstream
Merging watchdog/master
Merging bdev/master
Merging dwmw2-iommu/master
Merging cputime/cputime
Merging osd/linux-next
Merging jc_docs/docs-next
Merging nommu/master
Merging trivial/for-next
Merging audit/for-next
Merging quilt/aoe
Merging suspend/linux-next
Merging bluetooth/master
Merging fsnotify/for-next
CONFLICT (delete/modify): fs/notify/inotify/inotify.c deleted in fsnotify/for-next and modified in HEAD. Version HEAD of fs/notify/inotify/inotify.c left in tree.
$ git rm -f fs/notify/inotify/inotify.c
Applying: fsnotify: update gfp/slab.h includes
Merging irda/for-next
CONFLICT (content): Merge conflict in drivers/net/irda/irda-usb.c
Merging drbd/for-jens
CONFLICT (content): Merge conflict in fs/fs-writeback.c
CONFLICT (content): Merge conflict in include/linux/drbd.h
Merging catalin/for-next
Merging alacrity/linux-next
Merging i7core_edac/linux_next
Merging devicetree/next-devicetree
Merging spi/next-spi
Merging omap_dss2/for-next
Merging tip/auto-latest
Merging edac-amd/for-next
Merging oprofile/for-next
Merging percpu/for-next
Merging workqueues/for-next
Merging sfi/sfi-test
Merging asm-generic/next
Merging drivers-x86/linux-next
Merging hwpoison/hwpoison
Merging sysctl/master
Merging bkl-core/bkl/core
Merging bkl-procfs/bkl/procfs
Merging bkl-ioctl/bkl/ioctl
Merging quilt/driver-core
Merging quilt/tty
Merging quilt/usb
Merging staging-next/staging-next
Merging slabh/slabh
Merging scsi-post-merge/master
#1 lore raw

Re: linux-next: Tree for June 9 (niu)

Quoted 10 lines · On Wed, 9 Jun 2010 13:34:43 +1000 Stephen Rothwell wrote:

Hi all,

Changes since 20100608:

My fixes tree contains:
v4l-dvb: update gfp/slab.h includes
arm: update gfp/slab.h includes
davinci: update gfp/slab.h includes
ocfs2: update gfp/slab.h includes
acpi: update gfp/slab.h includes

on x86_64 or i386, CONFIG_OF_DEVICE is not enabled:

drivers/net/niu.c:9700: warning: 'struct of_device' declared inside parameter list drivers/net/niu.c:9700: warning: its scope is only this definition or declaration, which is probably not what you want drivers/net/niu.c:9716: warning: assignment from incompatible pointer type

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

maintainer
#2 lore raw

Re: linux-next: Tree for June 9 (niu)

From: Randy Dunlap <[email protected]>
Date: Wed, 9 Jun 2010 10:36:57 -0700

Quoted 13 lines · On Wed, 9 Jun 2010 13:34:43 +1000 Stephen Rothwell wrote:
Quoted 9 lines

Changes since 20100608:

My fixes tree contains:
v4l-dvb: update gfp/slab.h includes
arm: update gfp/slab.h includes
davinci: update gfp/slab.h includes
ocfs2: update gfp/slab.h includes
acpi: update gfp/slab.h includes

Quoted 5 lines

on x86_64 or i386, CONFIG_OF_DEVICE is not enabled:

drivers/net/niu.c:9700: warning: 'struct of_device' declared inside parameter list drivers/net/niu.c:9700: warning: its scope is only this definition or declaration, which is probably not what you want drivers/net/niu.c:9716: warning: assignment from incompatible pointer type

Hmmm, I'm confused why this never happened before :-)

We conditionalize linux/of_device.h inclusion with CONFIG_SPARC64, yet we unconditionally use "struct of_device *" pointers in the driver with no such ifdef protection.

Even if we unconditionally included linux/of_device.h, that file does nothing unless CONFIG_OF_DEVICE is defined so it should have always produced these warnings since I can't see from where else it could have gotten even a "struct of_device;" somewhere.

Do you have any idea Randy? Pease try analyze this further so we can fix it properly.

THanks!

#3 lore raw

Re: linux-next: Tree for June 9 (niu)

Quoted 28 lines · David Miller

From: Randy Dunlap <[email protected]>
Date: Wed, 9 Jun 2010 10:36:57 -0700

Quoted 13 lines · On Wed, 9 Jun 2010 13:34:43 +1000 Stephen Rothwell wrote:
Quoted 9 lines

Changes since 20100608:

My fixes tree contains:
v4l-dvb: update gfp/slab.h includes
arm: update gfp/slab.h includes
davinci: update gfp/slab.h includes
ocfs2: update gfp/slab.h includes
acpi: update gfp/slab.h includes

Quoted 5 lines

on x86_64 or i386, CONFIG_OF_DEVICE is not enabled:

drivers/net/niu.c:9700: warning: 'struct of_device' declared inside parameter list drivers/net/niu.c:9700: warning: its scope is only this definition or declaration, which is probably not what you want drivers/net/niu.c:9716: warning: assignment from incompatible pointer type

Hmmm, I'm confused why this never happened before :-)

We conditionalize linux/of_device.h inclusion with CONFIG_SPARC64, yet we unconditionally use "struct of_device *" pointers in the driver with no such ifdef protection.

Quoted 7 lines

Even if we unconditionally included linux/of_device.h, that file does nothing unless CONFIG_OF_DEVICE is defined so it should have always produced these warnings since I can't see from where else it could have gotten even a "struct of_device;" somewhere.

Do you have any idea Randy? Pease try analyze this further so we can fix it properly.

I looked and was confuzed, but I'll look again.

Signature · 2 lines
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
#4 lore raw

PATCH 1/2 of_device.h: provide struct of_device even when not enabled

In reply to David Miller

From: Randy Dunlap <[email protected]>

Drivers may use struct of_device (struct platform_device), even when CONFIG_OF_DEVICE is not enabled, so minimally provide that struct for that kconfig case.

Cc Grant Likely <[email protected]>
Cc Dave Miller <[email protected]>
---
 include/linux/of_device.h |    4 ++++
 1 file changed, 4 insertions(+)
include/linux/of_device.h +4 -0
@@ -47,6 +47,10 @@ extern ssize_t of_device_get_modalias(st
 
 extern int of_device_uevent(struct device *dev, struct kobj_uevent_env *env);
 
+#else
+
+#include <linux/platform_device.h>
+#define of_device platform_device
 
 #endif /* CONFIG_OF_DEVICE */
 
#5 lore raw

Re: [PATCH 1/2 -next] of_device.h: provide struct of_device even when not enabled

Quoted 16 lines · Randy Dunlap

From: Randy Dunlap <[email protected]>

Drivers may use struct of_device (struct platform_device), even when CONFIG_OF_DEVICE is not enabled, so minimally provide that struct for that kconfig case.

Cc Grant Likely <[email protected]>
Cc Dave Miller <[email protected]>

---
 include/linux/of_device.h |    4 ++++

 1 file changed, 4 insertions(+)

include/linux/of_device.h extern ssize_t of_device_get_modalias(st · line 53

Quoted 7 lines
include/linux/of_device.h +4 -0
@@ -47,6 +47,10 @@ extern ssize_t of_device_get_modalias(st
 
  extern int of_device_uevent(struct device *dev, struct kobj_uevent_env *env);
 
+#else
+
+#include <linux/platform_device.h>
+#define of_device platform_device

I should probably just move these 2 lines out of the #if/else/endif block entirely. I'll make that change and test it out.

g.

#6 lore raw

PATCH 2/2 niu: always include of_device.h

In reply to David Miller

From: Randy Dunlap <[email protected]>

The niu driver uses struct of_device when built on any arch, not only SPARC64, so always #include <linux/of_device.h>.

drivers/net/niu.c:9700: warning: 'struct of_device' declared inside parameter list drivers/net/niu.c:9700: warning: its scope is only this definition or declaration, which is probably not what you want drivers/net/niu.c:9716: warning: assignment from incompatible pointer type

Cc Grant Likely <[email protected]>
Cc Dave Miller <[email protected]>
---
 drivers/net/niu.c |    3 ---
 1 file changed, 3 deletions(-)
drivers/net/niu.c +0 -3
@@ -28,10 +28,7 @@
 #include <linux/slab.h>
 
 #include <linux/io.h>
-
-#ifdef CONFIG_SPARC64
 #include <linux/of_device.h>
-#endif
 
 #include "niu.h"
 
#7 lore raw

Re: [PATCH 2/2 -next] niu: always include of_device.h

Quoted 9 lines · Randy Dunlap

From: Randy Dunlap <[email protected]>

The niu driver uses struct of_device when built on any arch, not only SPARC64, so always #include <linux/of_device.h>.

drivers/net/niu.c:9700: warning: 'struct of_device' declared inside parameter list drivers/net/niu.c:9700: warning: its scope is only this definition or declaration, which is probably not what you want drivers/net/niu.c:9716: warning: assignment from incompatible pointer type

Quoted 5 lines
Cc Grant Likely <[email protected]>
Cc Dave Miller <[email protected]>

---
 drivers/net/niu.c |    3 ---

Looks okay to me (but I haven't build tested it yet). The bulk of of_device.h is compiled out when CONFIG_OF_DEVICE is not selected.

David, are you okay with me taking this via my tree as it depends on Randy's other patch?

Thanks,
g.

Quoted 16 lines
 1 file changed, 3 deletions(-)
drivers/net/niu.c +0 -3
@@ -28,10 +28,7 @@
  #include <linux/slab.h>
 
  #include <linux/io.h>
-
-#ifdef CONFIG_SPARC64
  #include <linux/of_device.h>
-#endif
 
  #include "niu.h"
 
Signature · 2 lines
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
maintainer Acked-by
#8 lore raw

Re: [PATCH 2/2 -next] niu: always include of_device.h

From: Grant Likely <[email protected]>
Date: Wed, 9 Jun 2010 17:45:54 -0600

Quoted 16 lines · Randy Dunlap
Quoted 9 lines

From: Randy Dunlap <[email protected]>

The niu driver uses struct of_device when built on any arch, not only SPARC64, so always #include <linux/of_device.h>.

drivers/net/niu.c:9700: warning: 'struct of_device' declared inside parameter list drivers/net/niu.c:9700: warning: its scope is only this definition or declaration, which is probably not what you want drivers/net/niu.c:9716: warning: assignment from incompatible pointer type

Quoted 5 lines
Cc Grant Likely <[email protected]>
Cc Dave Miller <[email protected]>

---
 drivers/net/niu.c |    3 ---

Quoted 5 lines

Looks okay to me (but I haven't build tested it yet). The bulk of of_device.h is compiled out when CONFIG_OF_DEVICE is not selected.

David, are you okay with me taking this via my tree as it depends on Randy's other patch?

Yep, that's totally fine with me:

#9 lore raw

PATCH 1/1 input: fixup X86_MRST selects

In reply to Stephen Rothwell

From: Randy Dunlap <[email protected]>

Some of the recent X86_MRST additions make some "select"s conditional on X86_MRST but missed some related kconfig symbols, causing:

drivers/built-in.o: In function `ps2_end_command':
(.text+0x257ab2): undefined reference to i8042_check_port_owner' drivers/built-in.o: In function ps2_end_command':
(.text+0x257ae1): undefined reference to i8042_unlock_chip' drivers/built-in.o: In function ps2_begin_command':
(.text+0x257b40): undefined reference to i8042_check_port_owner' drivers/built-in.o: In function ps2_begin_command':
(.text+0x257b6f): undefined reference to `i8042_lock_chip'

when SERIO_I8042=m, SERIO_LIBPS2=y, KEYBOARD_ATKBD=y.

Cc Dmitry Torokhov <[email protected]>
Cc Jacob Pan <[email protected]>

---
[found in linux-next but also applies to mainline]

 drivers/input/keyboard/Kconfig |    3 ++-
 drivers/input/mouse/Kconfig    |    2 +-
 drivers/input/serio/Kconfig    |    2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)
drivers/input/keyboard/Kconfig +2 -1
@@ -70,9 +70,10 @@ config KEYBOARD_ATARI
 
 config KEYBOARD_ATKBD
 	tristate "AT keyboard" if EMBEDDED || !X86
+	depends on !X86 || (X86 && !X86_MRST)
 	default y
 	select SERIO
-	select SERIO_LIBPS2
+	select SERIO_LIBPS2 if !X86_MRST
 	select SERIO_I8042 if X86 && !X86_MRST
 	select SERIO_GSCPS2 if GSC
 	help
drivers/input/mouse/Kconfig +1 -1
@@ -16,7 +16,7 @@ config MOUSE_PS2
 	tristate "PS/2 mouse"
 	default y
 	select SERIO
-	select SERIO_LIBPS2
+	select SERIO_LIBPS2 if !X86_MRST
 	select SERIO_I8042 if X86 && !X86_MRST
 	select SERIO_GSCPS2 if GSC
 	help
drivers/input/serio/Kconfig +1 -1
@@ -168,7 +168,7 @@ config SERIO_MACEPS2
 	  module will be called maceps2.
 
 config SERIO_LIBPS2
-	tristate "PS/2 driver library" if EMBEDDED
+	tristate "PS/2 driver library" if EMBEDDED && !X86_MRST
 	depends on SERIO_I8042 || SERIO_I8042=n
 	help
 	  Say Y here if you are using a driver for device connected
maintainer
#10 lore raw

Re: [PATCH] input: fixup X86_MRST selects

drivers/input/keyboard/Kconfig config KEYBOARD_ATARI · line 73

Quoted 6 lines · Randy Dunlap

+++ linux-next-20100609/drivers/input/keyboard/Kconfig

drivers/input/keyboard/Kconfig +1 -0
@@ -70,9 +70,10 @@ config KEYBOARD_ATARI
 
 config KEYBOARD_ATKBD
        tristate "AT keyboard" if EMBEDDED || !X86
+       depends on !X86 || (X86 && !X86_MRST)

Should it be simply 'depends on !X86_MRST' and then we could kill '!X86_MRST' conditionals in selects?

drivers/input/keyboard/Kconfig config KEYBOARD_ATARI · line 79

Quoted 7 lines
drivers/input/keyboard/Kconfig +1 -1
        default y
        select SERIO
-       select SERIO_LIBPS2
+       select SERIO_LIBPS2 if !X86_MRST
        select SERIO_I8042 if X86 && !X86_MRST
        select SERIO_GSCPS2 if GSC
        help

Thanks.

Signature · 1 line
Dmitry
#11 lore raw

Re: [PATCH] input: fixup X86_MRST selects

Quoted 10 lines · Dmitry Torokhov

drivers/input/keyboard/Kconfig config KEYBOARD_ATARI · line 73

Quoted 6 lines · Randy Dunlap

+++ linux-next-20100609/drivers/input/keyboard/Kconfig

drivers/input/keyboard/Kconfig +1 -0
@@ -70,9 +70,10 @@ config KEYBOARD_ATARI
 
 config KEYBOARD_ATKBD
        tristate "AT keyboard" if EMBEDDED || !X86
+       depends on !X86 || (X86 && !X86_MRST)

Should it be simply 'depends on !X86_MRST' and then we could kill '!X86_MRST' conditionals in selects?

Duh, that sounds good, yes.

Quoted 11 lines

drivers/input/keyboard/Kconfig config KEYBOARD_ATARI · line 79

Quoted 8 lines
drivers/input/keyboard/Kconfig +1 -1
        default y
        select SERIO
-       select SERIO_LIBPS2
+       select SERIO_LIBPS2 if !X86_MRST
        select SERIO_I8042 if X86 && !X86_MRST
        select SERIO_GSCPS2 if GSC
        help

Thanks.

Signature · 2 lines
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
maintainer
#12 lore raw

Re: [PATCH] input: fixup X86_MRST selects

Quoted 5 lines · Randy Dunlap
Quoted 4 lines · Dmitry Torokhov
Quoted 3 lines · Randy Dunlap

+++ linux-next-20100609/drivers/input/keyboard/Kconfig

(quoted diff) +0 -0
@@ -70,9 +70,10 @@ config KEYBOARD_ATARI
 
Quoted 8 lines
Quoted 6 lines

Review config KEYBOARD_ATARI · line 73

Quoted 3 lines
(quoted diff) +1 -0
 config KEYBOARD_ATKBD
        tristate "AT keyboard" if EMBEDDED || !X86
+       depends on !X86 || (X86 && !X86_MRST)

Should it be simply 'depends on !X86_MRST' and then we could kill '!X86_MRST' conditionals in selects?

Duh, that sounds good, yes.

Actually, I do not think this is a correct approach. While Moorestown does not have i8042 theoretically it is possible to add AT-style keyboard by other means (however unlikely it is) so we should not be disabling it.

We should, however, disallow i8042 from being selected. Could you please tell me if the patch below works for you?

Thanks!

Signature · 32 lines
Dmitry

Input: fixup X86_MRST selects

From: Randy Dunlap <[email protected]>

Some of the recent X86_MRST additions make some "select"s
conditional on X86_MRST but missed some related kconfig symbols,
causing:

drivers/built-in.o: In function `ps2_end_command':
(.text+0x257ab2): undefined reference to `i8042_check_port_owner'
drivers/built-in.o: In function `ps2_end_command':
(.text+0x257ae1): undefined reference to `i8042_unlock_chip'
drivers/built-in.o: In function `ps2_begin_command':
(.text+0x257b40): undefined reference to `i8042_check_port_owner'
drivers/built-in.o: In function `ps2_begin_command':
(.text+0x257b6f): undefined reference to `i8042_lock_chip'

when SERIO_I8042=m, SERIO_LIBPS2=y, KEYBOARD_ATKBD=y.

We need to make i8042 dependant upon !X86_MRST and allow deselecting
atkbd on Moorestown even when !CONFIG_EMBEDDED.

Signed-off-by: Randy Dunlap <[email protected]>
Cc: Jacob Pan <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
---

 drivers/input/keyboard/Kconfig |    2 +-
 drivers/input/serio/Kconfig    |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/input/keyboard/Kconfig +1 -1
index 9522b89..d3a99de 100644
@@ -69,7 +69,7 @@ config KEYBOARD_ATARI
 	  module will be called atakbd.
 
 config KEYBOARD_ATKBD
-	tristate "AT keyboard" if EMBEDDED || !X86
+	tristate "AT keyboard" if EMBEDDED || !X86 || X86_MRST
 	default y
 	select SERIO
 	select SERIO_LIBPS2
drivers/input/serio/Kconfig +1 -1
index 3bfe8fa..256b9e9 100644
@@ -22,7 +22,7 @@ config SERIO_I8042
 	tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86
 	default y
 	depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \
-		   (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN
+		   (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN && !X86_MRST
 	help
 	  i8042 is the chip over which the standard AT keyboard and PS/2
 	  mouse are connected to the computer. If you use these devices,
#13 lore raw

Re: [PATCH] input: fixup X86_MRST selects

Quoted 13 lines · Dmitry Torokhov
Quoted 12 lines · Randy Dunlap
Quoted 10 lines · Dmitry Torokhov

drivers/input/keyboard/Kconfig config KEYBOARD_ATARI · line 73

Quoted 6 lines · Randy Dunlap

+++ linux-next-20100609/drivers/input/keyboard/Kconfig

drivers/input/keyboard/Kconfig +1 -0
@@ -70,9 +70,10 @@ config KEYBOARD_ATARI
 
 config KEYBOARD_ATKBD
        tristate "AT keyboard" if EMBEDDED || !X86
+       depends on !X86 || (X86 && !X86_MRST)

Should it be simply 'depends on !X86_MRST' and then we could kill '!X86_MRST' conditionals in selects?

Quoted 8 lines
Quoted 1 line

Duh, that sounds good, yes.

Actually, I do not think this is a correct approach. While Moorestown does not have i8042 theoretically it is possible to add AT-style keyboard by other means (however unlikely it is) so we should not be disabling it.

We should, however, disallow i8042 from being selected. Could you please tell me if the patch below works for you?

Yes, that's good. Thanks.

Signature · 2 lines
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
#14 lore raw

problem: Re: [PATCH] input: fixup X86_MRST selects

In reply to Dmitry Torokhov
Quoted 13 lines · Dmitry Torokhov
Quoted 12 lines · Randy Dunlap
Quoted 10 lines · Dmitry Torokhov

drivers/input/keyboard/Kconfig config KEYBOARD_ATARI · line 73

Quoted 6 lines · Randy Dunlap

+++ linux-next-20100609/drivers/input/keyboard/Kconfig

drivers/input/keyboard/Kconfig +1 -0
@@ -70,9 +70,10 @@ config KEYBOARD_ATARI
 
 config KEYBOARD_ATKBD
        tristate "AT keyboard" if EMBEDDED || !X86
+       depends on !X86 || (X86 && !X86_MRST)

Should it be simply 'depends on !X86_MRST' and then we could kill '!X86_MRST' conditionals in selects?

Quoted 8 lines
Quoted 1 line

Duh, that sounds good, yes.

Actually, I do not think this is a correct approach. While Moorestown does not have i8042 theoretically it is possible to add AT-style keyboard by other means (however unlikely it is) so we should not be disabling it.

We should, however, disallow i8042 from being selected. Could you please tell me if the patch below works for you?

Dmitry,

This patch (in current mainline git) causes a problem when X86_MRST is enabled. CONFIG_SERIO_I8042 is no longer enabled when X86_MRST is enabled, and X86_MRST could be enabled when someone is trying to build a generic kernel.

Signature · 2 lines
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
maintainer
#15 lore raw

Re: problem: Re: [PATCH] input: fixup X86_MRST selects

Quoted 26 lines · Randy Dunlap
Quoted 17 lines · Dmitry Torokhov
Quoted 7 lines · Randy Dunlap
Quoted 6 lines · Dmitry Torokhov
Quoted 5 lines · Randy Dunlap

+++ linux-next-20100609/drivers/input/keyboard/Kconfig

drivers/input/keyboard/Kconfig +0 -0
@@ -70,9 +70,10 @@ config KEYBOARD_ATARI
 
 config KEYBOARD_ATKBD
 
Quoted 8 lines
Quoted 6 lines

Review config KEYBOARD_ATARI · line 75

Quoted 3 lines
(quoted diff) +1 -0
        tristate "AT keyboard" if EMBEDDED || !X86
 
+       depends on !X86 || (X86 && !X86_MRST)

Should it be simply 'depends on !X86_MRST' and then we could kill '!X86_MRST' conditionals in selects?

Duh, that sounds good, yes.

Quoted 7 lines

Actually, I do not think this is a correct approach. While Moorestown does not have i8042 theoretically it is possible to add AT-style keyboard by other means (however unlikely it is) so we should not be disabling it.

We should, however, disallow i8042 from being selected. Could you please tell me if the patch below works for you?

Quoted 6 lines

Dmitry,

This patch (in current mainline git) causes a problem when X86_MRST is enabled. CONFIG_SERIO_I8042 is no longer enabled when X86_MRST is enabled, and X86_MRST could be enabled when someone is trying to build a generic kernel.

Randy,

Looking at arch/x86/kernel/mrst.c I am not sure if generic kernel will work well witbh X86_MRST set. However if we supposed to support Moorestown on generic images then, instead of playing with Kconfig, we need to adjust i8042_platform_init() to abort on Moorestown.

Thanks.

Signature · 1 line
Dmitry
#16 lore raw

Re: problem: Re: [PATCH] input: fixup X86_MRST selects

Quoted 34 lines · Dmitry Torokhov
Quoted 26 lines · Randy Dunlap
Quoted 17 lines · Dmitry Torokhov
Quoted 7 lines · Randy Dunlap
Quoted 6 lines · Dmitry Torokhov
Quoted 5 lines · Randy Dunlap

+++ linux-next-20100609/drivers/input/keyboard/Kconfig

drivers/input/keyboard/Kconfig +0 -0
@@ -70,9 +70,10 @@ config KEYBOARD_ATARI
 
 config KEYBOARD_ATKBD
 
Quoted 8 lines
Quoted 6 lines

Review config KEYBOARD_ATARI · line 75

Quoted 3 lines
(quoted diff) +1 -0
        tristate "AT keyboard" if EMBEDDED || !X86
 
+       depends on !X86 || (X86 && !X86_MRST)

Should it be simply 'depends on !X86_MRST' and then we could kill '!X86_MRST' conditionals in selects?

Duh, that sounds good, yes.

Quoted 7 lines

Actually, I do not think this is a correct approach. While Moorestown does not have i8042 theoretically it is possible to add AT-style keyboard by other means (however unlikely it is) so we should not be disabling it.

We should, however, disallow i8042 from being selected. Could you please tell me if the patch below works for you?

Quoted 6 lines

Dmitry,

This patch (in current mainline git) causes a problem when X86_MRST is enabled. CONFIG_SERIO_I8042 is no longer enabled when X86_MRST is enabled, and X86_MRST could be enabled when someone is trying to build a generic kernel.

Quoted 6 lines

Randy,

Looking at arch/x86/kernel/mrst.c I am not sure if generic kernel will work well witbh X86_MRST set. However if we supposed to support Moorestown on generic images then, instead of playing with Kconfig, we need to adjust i8042_platform_init() to abort on Moorestown.

OK. Until something else is done, you might want to revert this patch and just live with the build errors (that caused me to send the original patch).

Signature · 2 lines
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
#17 lore raw

RE: problem: Re: [PATCH] input: fixup X86_MRST selects

Quoted 54 lines

-----Original Message-----
From: Randy Dunlap [mailto:[email protected]]
Sent: Monday, June 28, 2010 1:24 PM
To: Dmitry Torokhov
Cc: Stephen Rothwell; Pan, Jacob jun; [email protected]; LKML; [email protected]; akpm; [email protected]
Subject: Re: problem: Re: [PATCH] input: fixup X86_MRST selects

Quoted 12 lines · Dmitry Torokhov
Quoted 11 lines · Randy Dunlap
Quoted 10 lines · Dmitry Torokhov
Quoted 9 lines · Randy Dunlap
Quoted 8 lines · Dmitry Torokhov
Quoted 7 lines · Randy Dunlap

+++ linux-next-20100609/drivers/input/keyboard/Kconfig

(quoted diff) +0 -0
@@ -70,9 +70,10 @@ config KEYBOARD_ATARI
 
 config KEYBOARD_ATKBD
 
        tristate "AT keyboard" if EMBEDDED || !X86
 
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 6 lines
Quoted 4 lines

Review config KEYBOARD_ATARI · line 75

Quoted 1 line
(quoted diff) +1 -0
+       depends on !X86 || (X86 && !X86_MRST)

Should it be simply 'depends on !X86_MRST' and then we could kill '!X86_MRST' conditionals in selects?

Duh, that sounds good, yes.

Actually, I do not think this is a correct approach. While

Moorestown

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

does not have i8042 theoretically it is possible to add AT-style keyboard by other means (however unlikely it is) so we should not be disabling it.

We should, however, disallow i8042 from being selected. Could you

please

Quoted 5 lines
Quoted 5 lines
Quoted 1 line

tell me if the patch below works for you?

Dmitry,

This patch (in current mainline git) causes a problem when X86_MRST

is

Quoted 1 line
Quoted 1 line

enabled. CONFIG_SERIO_I8042 is no longer enabled when X86_MRST is

enabled,

Quoted 1 line
Quoted 1 line

and X86_MRST could be enabled when someone is trying to build a

generic

Quoted 6 lines
Quoted 1 line

kernel.

Randy,

Looking at arch/x86/kernel/mrst.c I am not sure if generic kernel will work well witbh X86_MRST set. However if we supposed to support

Quoted 9 lines

Moorestown

Quoted 1 line

on generic images then, instead of playing with Kconfig, we need to

adjust

Quoted 1 line

i8042_platform_init() to abort on Moorestown.

OK. Until something else is done, you might want to revert this patch and just live with the build errors (that caused me to send the original patch).

We do intend to maintain binary compatibility between generic kernel and Moorestown. I guess the challenge is not having enumeration of i8042 pass to the driver. Do you prefer abort i8042_platform_init() based on #define CONFIG_X86_MRST? It is no safe to probe HW on Moorestown, unfortunately.

maintainer
#18 lore raw

Re: problem: Re: [PATCH] input: fixup X86_MRST selects

Quoted 5 lines · Jacob jun
Quoted 1 line

We do intend to maintain binary compatibility between generic kernel and Moorestown. I guess the challenge is not having enumeration of i8042 pass to the driver. Do you prefer abort i8042_platform_init() based on #define CONFIG_X86_MRST? It is no safe to probe HW on Moorestown, unfortunately.

Any check based on CONFIG_X86_MRST means that kernel is not generic. We'd need a runtime check (but not necessarily one that bangs ports). Is there something in processor flags, or DMI, or similar that woudl allow i8042 to see that it runs on Moorestown?

Signature · 1 line
Dmitry
#19 lore raw

RE: problem: Re: [PATCH] input: fixup X86_MRST selects

There is no DMI support yet in MRST FW.
We have a new x86 HW subarch ID in boot_param, then we use it to select x86_init abstractions. Both boot_param and x86_init are x86 arch specific so I guess we can use them in 8042 driver under CONFIG_X86. Not sure if it is possible to move x86 i8042_platform_init under x86_init (the x86 part).

Quoted 26 lines

-----Original Message-----
From: Dmitry Torokhov [mailto:[email protected]]
Sent: Monday, June 28, 2010 3:45 PM
To: Pan, Jacob jun
Cc: Randy Dunlap; Stephen Rothwell; [email protected]; LKML; [email protected]; akpm; [email protected]; H. Peter Anvin
Subject: Re: problem: Re: [PATCH] input: fixup X86_MRST selects

Quoted 2 lines · Jacob jun
Quoted 1 line

We do intend to maintain binary compatibility between generic kernel

and Moorestown.

Quoted 1 line

I guess the challenge is not having enumeration of i8042 pass to the

driver. Do you

Quoted 1 line

prefer abort i8042_platform_init() based on #define CONFIG_X86_MRST?

It is no safe

Quoted 1 line

to probe HW on Moorestown, unfortunately.

Any check based on CONFIG_X86_MRST means that kernel is not generic. We'd need a runtime check (but not necessarily one that bangs ports). Is there something in processor flags, or DMI, or similar that woudl allow i8042 to see that it runs on Moorestown?

--
Dmitry

maintainer
#20 lore raw

Re: problem: Re: [PATCH] input: fixup X86_MRST selects

Quoted 6 lines · Jacob jun

There is no DMI support yet in MRST FW. We have a new x86 HW subarch ID in boot_param, then we use it to select x86_init abstractions. Both boot_param and x86_init are x86 arch specific so I guess we can use them in 8042 driver under CONFIG_X86. Not sure if it is possible to move x86 i8042_platform_init under x86_init (the x86 part).

Moving i8042_platform_init() into platform code is quite invasive, how about we to the following?

Thanks.

Signature · 21 lines
Dmitry


Input: i8042 - detect legacy-free platforms (Moorestown)

Moorestown does not have legacy hardware (i8042, i8259) and does not
like legacy ports being poked by drivers. Instead of playing with
Kconfig selections let's check if we set up dummy (null) legacy PIC
during startup and abort i8042 initialization as well. This should
fix the following bug:

	https://bugzilla.kernel.org/show_bug.cgi?id=16326

Signed-off-by: Dmitry Torokhov <[email protected]>
---

 drivers/input/keyboard/Kconfig        |    4 ++--
 drivers/input/mouse/Kconfig           |    2 +-
 drivers/input/serio/Kconfig           |    2 +-
 drivers/input/serio/i8042-x86ia64io.h |   18 ++++++++++++++++++
 4 files changed, 22 insertions(+), 4 deletions(-)
drivers/input/keyboard/Kconfig +2 -2
index d3a99de..b25917b 100644
@@ -69,11 +69,11 @@ config KEYBOARD_ATARI
 	  module will be called atakbd.
 
 config KEYBOARD_ATKBD
-	tristate "AT keyboard" if EMBEDDED || !X86 || X86_MRST
+	tristate "AT keyboard" if EMBEDDED || !X86
 	default y
 	select SERIO
 	select SERIO_LIBPS2
-	select SERIO_I8042 if X86 && !X86_MRST
+	select SERIO_I8042 if X86
 	select SERIO_GSCPS2 if GSC
 	help
 	  Say Y here if you want to use a standard AT or PS/2 keyboard. Usually
drivers/input/mouse/Kconfig +1 -1
index eeb58c1..c714ca2 100644
@@ -17,7 +17,7 @@ config MOUSE_PS2
 	default y
 	select SERIO
 	select SERIO_LIBPS2
-	select SERIO_I8042 if X86 && !X86_MRST
+	select SERIO_I8042 if X86
 	select SERIO_GSCPS2 if GSC
 	help
 	  Say Y here if you have a PS/2 mouse connected to your system. This
drivers/input/serio/Kconfig +1 -1
index 256b9e9..3bfe8fa 100644
@@ -22,7 +22,7 @@ config SERIO_I8042
 	tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86
 	default y
 	depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \
-		   (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN && !X86_MRST
+		   (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN
 	help
 	  i8042 is the chip over which the standard AT keyboard and PS/2
 	  mouse are connected to the computer. If you use these devices,
drivers/input/serio/i8042-x86ia64io.h +18 -0
index 723106c..a6a4a2f 100644
@@ -844,10 +844,28 @@ static inline int i8042_pnp_init(void) { return 0; }
 static inline void i8042_pnp_exit(void) { }
 #endif
 
+#if CONFIG_X86
+#include <asm/i8259.h>
+static bool i8042_legacy_free_platform(void)
+{
+	/*
+	 * Moorestown platform does not have i8042 nor does it
+	 * have other legacy devices, such as i8259. Use ths fact
+	 * to detect that we are running on a legacy-free platform.
+	 */
+	return legacy_pic == &null_legacy_pic;
+}
+#else
+static bool i8042_legacy_free_platform(void) { }
+#endif
+
 static int __init i8042_platform_init(void)
 {
 	int retval;
 
+	if (i8042_legacy_free_platform())
+		return -ENXIO;
+
 /*
  * On ix86 platforms touching the i8042 data register region can do really
  * bad things. Because of this the region is always reserved on ix86 boxes.
#21 lore raw

Re: problem: Re: [PATCH] input: fixup X86_MRST selects

Quoted 8 lines · Dmitry Torokhov
Quoted 6 lines · Jacob jun

There is no DMI support yet in MRST FW. We have a new x86 HW subarch ID in boot_param, then we use it to select x86_init abstractions. Both boot_param and x86_init are x86 arch specific so I guess we can use them in 8042 driver under CONFIG_X86. Not sure if it is possible to move x86 i8042_platform_init under x86_init (the x86 part).

Quoted 5 lines

Moving i8042_platform_init() into platform code is quite invasive, how about we to the following?

Thanks.

Uck, no!

	----

Moorestown does not have legacy hardware (i8042, i8259) and does not like legacy ports being poked by drivers. Instead of playing with Kconfig selections let's check if we set up dummy (null) legacy PIC during startup and abort i8042 initialization as well. This should fix the following bug:

	----

The presence of 8042 and 8259 are orthogonal. In fact, there are quite a few systems on the market which have 8259 but not 8042, and at least having the ability to handle that correctly instead of just assuming that those I/O ports are safe is pretty key.

So please don't commingle these completely unrelated platform attributes.

-hpa

Signature · 2 lines
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.