Commit 8c4e1c02 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'm68k-for-v5.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k

Pull m68k updates from Geert Uytterhoeven:

 - several Kbuild improvements

 - several Mac fixes

 - minor cleanups and fixes

 - defconfig updates

* tag 'm68k-for-v5.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
  m68k: defconfig: Update defconfigs for v5.8-rc3
  m68k: Use CLEAN_FILES to clean up files
  m68k: mac: Improve IOP debug messages
  m68k: mac: Don't send uninitialized data in IOP message reply
  m68k: mac: Fix IOP status/control register writes
  m68k: mac: Don't send IOP message until channel is idle
  m68k: atari: Annotate dummy read in ROM port IO code as __maybe_unused
  m68k: Use sizeof_field() helper
  m68k: Pass -D options to KBUILD_CPPFLAGS instead of KBUILD_{A,C}FLAGS
  m68k: Optimize cc-option calls for cpuflags-y
  m68k: sun3: Descend to prom from arch/m68k/sun3
  m68k: Add arch/m68k/Kbuild
parents 05119217 382f429b
# SPDX-License-Identifier: GPL-2.0-only
obj-y += kernel/ mm/
obj-$(CONFIG_Q40) += q40/
obj-$(CONFIG_AMIGA) += amiga/
obj-$(CONFIG_ATARI) += atari/
obj-$(CONFIG_MAC) += mac/
obj-$(CONFIG_HP300) += hp300/
obj-$(CONFIG_APOLLO) += apollo/
obj-$(CONFIG_MVME147) += mvme147/
obj-$(CONFIG_MVME16x) += mvme16x/
obj-$(CONFIG_BVME6000) += bvme6000/
obj-$(CONFIG_SUN3X) += sun3x/ sun3/
obj-$(CONFIG_SUN3) += sun3/
obj-$(CONFIG_NATFEAT) += emu/
obj-$(CONFIG_M68040) += fpsp040/
obj-$(CONFIG_M68060) += ifpsp060/
obj-$(CONFIG_M68KFPU_EMU) += math-emu/
obj-$(CONFIG_M68000) += 68000/
obj-$(CONFIG_COLDFIRE) += coldfire/
...@@ -32,30 +32,33 @@ endif ...@@ -32,30 +32,33 @@ endif
# compiler cpu type flag. # compiler cpu type flag.
# #
ifndef CONFIG_M68040 ifndef CONFIG_M68040
cpuflags-$(CONFIG_M68060) := -m68060 cpuflags-$(CONFIG_M68060) = -m68060
endif endif
ifndef CONFIG_M68060 ifndef CONFIG_M68060
cpuflags-$(CONFIG_M68040) := -m68040 cpuflags-$(CONFIG_M68040) = -m68040
endif endif
cpuflags-$(CONFIG_M68030) := cpuflags-$(CONFIG_M68030) =
cpuflags-$(CONFIG_M68020) := cpuflags-$(CONFIG_M68020) =
cpuflags-$(CONFIG_M68000) := -m68000 cpuflags-$(CONFIG_M68000) = -m68000
cpuflags-$(CONFIG_M5441x) := $(call cc-option,-mcpu=54455,-mcfv4e) cpuflags-$(CONFIG_M5441x) = $(call cc-option,-mcpu=54455,-mcfv4e)
cpuflags-$(CONFIG_M54xx) := $(call cc-option,-mcpu=5475,-m5200) cpuflags-$(CONFIG_M54xx) = $(call cc-option,-mcpu=5475,-m5200)
cpuflags-$(CONFIG_M5407) := $(call cc-option,-mcpu=5407,-m5200) cpuflags-$(CONFIG_M5407) = $(call cc-option,-mcpu=5407,-m5200)
cpuflags-$(CONFIG_M532x) := $(call cc-option,-mcpu=532x,-m5307) cpuflags-$(CONFIG_M532x) = $(call cc-option,-mcpu=532x,-m5307)
cpuflags-$(CONFIG_M537x) := $(call cc-option,-mcpu=537x,-m5307) cpuflags-$(CONFIG_M537x) = $(call cc-option,-mcpu=537x,-m5307)
cpuflags-$(CONFIG_M5307) := $(call cc-option,-mcpu=5307,-m5200) cpuflags-$(CONFIG_M5307) = $(call cc-option,-mcpu=5307,-m5200)
cpuflags-$(CONFIG_M528x) := $(call cc-option,-mcpu=528x,-m5307) cpuflags-$(CONFIG_M528x) = $(call cc-option,-mcpu=528x,-m5307)
cpuflags-$(CONFIG_M5275) := $(call cc-option,-mcpu=5275,-m5307) cpuflags-$(CONFIG_M5275) = $(call cc-option,-mcpu=5275,-m5307)
cpuflags-$(CONFIG_M5272) := $(call cc-option,-mcpu=5272,-m5307) cpuflags-$(CONFIG_M5272) = $(call cc-option,-mcpu=5272,-m5307)
cpuflags-$(CONFIG_M5271) := $(call cc-option,-mcpu=5271,-m5307) cpuflags-$(CONFIG_M5271) = $(call cc-option,-mcpu=5271,-m5307)
cpuflags-$(CONFIG_M523x) := $(call cc-option,-mcpu=523x,-m5307) cpuflags-$(CONFIG_M523x) = $(call cc-option,-mcpu=523x,-m5307)
cpuflags-$(CONFIG_M525x) := $(call cc-option,-mcpu=5253,-m5200) cpuflags-$(CONFIG_M525x) = $(call cc-option,-mcpu=5253,-m5200)
cpuflags-$(CONFIG_M5249) := $(call cc-option,-mcpu=5249,-m5200) cpuflags-$(CONFIG_M5249) = $(call cc-option,-mcpu=5249,-m5200)
cpuflags-$(CONFIG_M520x) := $(call cc-option,-mcpu=5208,-m5200) cpuflags-$(CONFIG_M520x) = $(call cc-option,-mcpu=5208,-m5200)
cpuflags-$(CONFIG_M5206e) := $(call cc-option,-mcpu=5206e,-m5200) cpuflags-$(CONFIG_M5206e) = $(call cc-option,-mcpu=5206e,-m5200)
cpuflags-$(CONFIG_M5206) := $(call cc-option,-mcpu=5206,-m5200) cpuflags-$(CONFIG_M5206) = $(call cc-option,-mcpu=5206,-m5200)
# Evaluate tune cc-option calls now
cpuflags-y := $(cpuflags-y)
KBUILD_AFLAGS += $(cpuflags-y) KBUILD_AFLAGS += $(cpuflags-y)
KBUILD_CFLAGS += $(cpuflags-y) KBUILD_CFLAGS += $(cpuflags-y)
...@@ -67,9 +70,8 @@ ifdef CONFIG_MMU ...@@ -67,9 +70,8 @@ ifdef CONFIG_MMU
KBUILD_CFLAGS += -fno-strength-reduce -ffixed-a2 KBUILD_CFLAGS += -fno-strength-reduce -ffixed-a2
else else
# we can use a m68k-linux-gcc toolchain with these in place # we can use a m68k-linux-gcc toolchain with these in place
KBUILD_CFLAGS += -DUTS_SYSNAME=\"uClinux\" KBUILD_CPPFLAGS += -DUTS_SYSNAME=\"uClinux\"
KBUILD_CFLAGS += -D__uClinux__ KBUILD_CPPFLAGS += -D__uClinux__
KBUILD_AFLAGS += -D__uClinux__
endif endif
KBUILD_LDFLAGS := -m m68kelf KBUILD_LDFLAGS := -m m68kelf
...@@ -97,27 +99,9 @@ head-$(CONFIG_SUN3) := arch/m68k/kernel/sun3-head.o ...@@ -97,27 +99,9 @@ head-$(CONFIG_SUN3) := arch/m68k/kernel/sun3-head.o
head-$(CONFIG_M68000) := arch/m68k/68000/head.o head-$(CONFIG_M68000) := arch/m68k/68000/head.o
head-$(CONFIG_COLDFIRE) := arch/m68k/coldfire/head.o head-$(CONFIG_COLDFIRE) := arch/m68k/coldfire/head.o
core-y += arch/m68k/kernel/ arch/m68k/mm/ core-y += arch/m68k/
libs-y += arch/m68k/lib/ libs-y += arch/m68k/lib/
core-$(CONFIG_Q40) += arch/m68k/q40/
core-$(CONFIG_AMIGA) += arch/m68k/amiga/
core-$(CONFIG_ATARI) += arch/m68k/atari/
core-$(CONFIG_MAC) += arch/m68k/mac/
core-$(CONFIG_HP300) += arch/m68k/hp300/
core-$(CONFIG_APOLLO) += arch/m68k/apollo/
core-$(CONFIG_MVME147) += arch/m68k/mvme147/
core-$(CONFIG_MVME16x) += arch/m68k/mvme16x/
core-$(CONFIG_BVME6000) += arch/m68k/bvme6000/
core-$(CONFIG_SUN3X) += arch/m68k/sun3x/ arch/m68k/sun3/
core-$(CONFIG_SUN3) += arch/m68k/sun3/ arch/m68k/sun3/prom/
core-$(CONFIG_NATFEAT) += arch/m68k/emu/
core-$(CONFIG_M68040) += arch/m68k/fpsp040/
core-$(CONFIG_M68060) += arch/m68k/ifpsp060/
core-$(CONFIG_M68KFPU_EMU) += arch/m68k/math-emu/
core-$(CONFIG_M68000) += arch/m68k/68000/
core-$(CONFIG_COLDFIRE) += arch/m68k/coldfire/
all: zImage all: zImage
...@@ -154,8 +138,7 @@ else ...@@ -154,8 +138,7 @@ else
$(KBZIP2) -1c vmlinux >vmlinux.bz2 $(KBZIP2) -1c vmlinux >vmlinux.bz2
endif endif
archclean: CLEAN_FILES += vmlinux.gz vmlinux.bz2
rm -f vmlinux.gz vmlinux.bz2
archheaders: archheaders:
$(Q)$(MAKE) $(build)=arch/m68k/kernel/syscalls all $(Q)$(MAKE) $(build)=arch/m68k/kernel/syscalls all
......
...@@ -594,6 +594,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -594,6 +594,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -615,6 +616,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -615,6 +616,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -643,6 +645,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -643,6 +645,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -550,6 +550,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -550,6 +550,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -571,6 +572,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -571,6 +572,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -599,6 +601,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -599,6 +601,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -572,6 +572,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -572,6 +572,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -593,6 +594,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -593,6 +594,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -621,6 +623,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -621,6 +623,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -543,6 +543,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -543,6 +543,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -564,6 +565,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -564,6 +565,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -592,6 +594,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -592,6 +594,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -552,6 +552,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -552,6 +552,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -573,6 +574,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -573,6 +574,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -601,6 +603,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -601,6 +603,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -574,6 +574,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -574,6 +574,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -595,6 +596,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -595,6 +596,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -623,6 +625,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -623,6 +625,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -660,6 +660,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -660,6 +660,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -681,6 +682,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -681,6 +682,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -709,6 +711,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -709,6 +711,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -542,6 +542,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -542,6 +542,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -563,6 +564,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -563,6 +564,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -591,6 +593,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -591,6 +593,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -543,6 +543,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -543,6 +543,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -564,6 +565,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -564,6 +565,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -592,6 +594,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -592,6 +594,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -561,6 +561,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -561,6 +561,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -582,6 +583,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -582,6 +583,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -610,6 +612,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -610,6 +612,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -545,6 +545,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -545,6 +545,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -566,6 +567,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -566,6 +567,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -593,6 +595,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -593,6 +595,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -544,6 +544,7 @@ CONFIG_CRYPTO_BLOWFISH=m ...@@ -544,6 +544,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20=m
...@@ -565,6 +566,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m ...@@ -565,6 +566,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_PRIME_NUMBERS=m
CONFIG_CRC32_SELFTEST=m CONFIG_CRC32_SELFTEST=m
CONFIG_CRC64=m CONFIG_CRC64=m
CONFIG_XZ_DEC_TEST=m CONFIG_XZ_DEC_TEST=m
...@@ -593,6 +595,7 @@ CONFIG_TEST_OVERFLOW=m ...@@ -593,6 +595,7 @@ CONFIG_TEST_OVERFLOW=m
CONFIG_TEST_RHASHTABLE=m CONFIG_TEST_RHASHTABLE=m
CONFIG_TEST_HASH=m CONFIG_TEST_HASH=m
CONFIG_TEST_IDA=m CONFIG_TEST_IDA=m
CONFIG_TEST_BITOPS=m
CONFIG_TEST_VMALLOC=m CONFIG_TEST_VMALLOC=m
CONFIG_TEST_USER_COPY=m CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
......
...@@ -80,14 +80,14 @@ ...@@ -80,14 +80,14 @@
({ u16 __v = le16_to_cpu(*(__force volatile u16 *) (addr)); __v; }) ({ u16 __v = le16_to_cpu(*(__force volatile u16 *) (addr)); __v; })
#define rom_out_8(addr, b) \ #define rom_out_8(addr, b) \
({u8 __w, __v = (b); u32 _addr = ((u32) (addr)); \ ({u8 __maybe_unused __w, __v = (b); u32 _addr = ((u32) (addr)); \
__w = ((*(__force volatile u8 *) ((_addr | 0x10000) + (__v<<1)))); }) __w = ((*(__force volatile u8 *) ((_addr | 0x10000) + (__v<<1)))); })
#define rom_out_be16(addr, w) \ #define rom_out_be16(addr, w) \
({u16 __w, __v = (w); u32 _addr = ((u32) (addr)); \ ({u16 __maybe_unused __w, __v = (w); u32 _addr = ((u32) (addr)); \
__w = ((*(__force volatile u16 *) ((_addr & 0xFFFF0000UL) + ((__v & 0xFF)<<1)))); \ __w = ((*(__force volatile u16 *) ((_addr & 0xFFFF0000UL) + ((__v & 0xFF)<<1)))); \
__w = ((*(__force volatile u16 *) ((_addr | 0x10000) + ((__v >> 8)<<1)))); }) __w = ((*(__force volatile u16 *) ((_addr | 0x10000) + ((__v >> 8)<<1)))); })
#define rom_out_le16(addr, w) \ #define rom_out_le16(addr, w) \
({u16 __w, __v = (w); u32 _addr = ((u32) (addr)); \ ({u16 __maybe_unused __w, __v = (w); u32 _addr = ((u32) (addr)); \
__w = ((*(__force volatile u16 *) ((_addr & 0xFFFF0000UL) + ((__v >> 8)<<1)))); \ __w = ((*(__force volatile u16 *) ((_addr & 0xFFFF0000UL) + ((__v >> 8)<<1)))); \
__w = ((*(__force volatile u16 *) ((_addr | 0x10000) + ((__v & 0xFF)<<1)))); }) __w = ((*(__force volatile u16 *) ((_addr | 0x10000) + ((__v & 0xFF)<<1)))); })
......
...@@ -61,25 +61,25 @@ ...@@ -61,25 +61,25 @@
#define FMT4SIZE 0 #define FMT4SIZE 0
#else #else
#define FORMAT 0 #define FORMAT 0
#define FMT4SIZE sizeof(((struct frame *)0)->un.fmt4) #define FMT4SIZE sizeof_field(struct frame, un.fmt4)
#endif #endif
static const int frame_size_change[16] = { static const int frame_size_change[16] = {
[1] = -1, /* sizeof(((struct frame *)0)->un.fmt1), */ [1] = -1, /* sizeof_field(struct frame, un.fmt1), */
[2] = sizeof(((struct frame *)0)->un.fmt2), [2] = sizeof_field(struct frame, un.fmt2),
[3] = sizeof(((struct frame *)0)->un.fmt3), [3] = sizeof_field(struct frame, un.fmt3),
[4] = FMT4SIZE, [4] = FMT4SIZE,
[5] = -1, /* sizeof(((struct frame *)0)->un.fmt5), */ [5] = -1, /* sizeof_field(struct frame, un.fmt5), */
[6] = -1, /* sizeof(((struct frame *)0)->un.fmt6), */ [6] = -1, /* sizeof_field(struct frame, un.fmt6), */
[7] = sizeof(((struct frame *)0)->un.fmt7), [7] = sizeof_field(struct frame, un.fmt7),
[8] = -1, /* sizeof(((struct frame *)0)->un.fmt8), */ [8] = -1, /* sizeof_field(struct frame, un.fmt8), */
[9] = sizeof(((struct frame *)0)->un.fmt9), [9] = sizeof_field(struct frame, un.fmt9),
[10] = sizeof(((struct frame *)0)->un.fmta), [10] = sizeof_field(struct frame, un.fmta),
[11] = sizeof(((struct frame *)0)->un.fmtb), [11] = sizeof_field(struct frame, un.fmtb),
[12] = -1, /* sizeof(((struct frame *)0)->un.fmtc), */ [12] = -1, /* sizeof_field(struct frame, un.fmtc), */
[13] = -1, /* sizeof(((struct frame *)0)->un.fmtd), */ [13] = -1, /* sizeof_field(struct frame, un.fmtd), */
[14] = -1, /* sizeof(((struct frame *)0)->un.fmte), */ [14] = -1, /* sizeof_field(struct frame, un.fmte), */
[15] = -1, /* sizeof(((struct frame *)0)->un.fmtf), */ [15] = -1, /* sizeof_field(struct frame, un.fmtf), */
}; };
static inline int frame_extra_sizes(int f) static inline int frame_extra_sizes(int f)
...@@ -651,7 +651,7 @@ static int mangle_kernel_stack(struct pt_regs *regs, int formatvec, ...@@ -651,7 +651,7 @@ static int mangle_kernel_stack(struct pt_regs *regs, int formatvec,
} else { } else {
struct switch_stack *sw = (struct switch_stack *)regs - 1; struct switch_stack *sw = (struct switch_stack *)regs - 1;
/* yes, twice as much as max(sizeof(frame.un.fmt<x>)) */ /* yes, twice as much as max(sizeof(frame.un.fmt<x>)) */
unsigned long buf[sizeof(((struct frame *)0)->un) / 2]; unsigned long buf[sizeof_field(struct frame, un) / 2];
/* that'll make sure that expansion won't crap over data */ /* that'll make sure that expansion won't crap over data */
if (copy_from_user(buf + fsize / 4, fp, fsize)) if (copy_from_user(buf + fsize / 4, fp, fsize))
......
...@@ -183,7 +183,7 @@ static __inline__ void iop_writeb(volatile struct mac_iop *iop, __u16 addr, __u8 ...@@ -183,7 +183,7 @@ static __inline__ void iop_writeb(volatile struct mac_iop *iop, __u16 addr, __u8
static __inline__ void iop_stop(volatile struct mac_iop *iop) static __inline__ void iop_stop(volatile struct mac_iop *iop)
{ {
iop->status_ctrl &= ~IOP_RUN; iop->status_ctrl = IOP_AUTOINC;
} }
static __inline__ void iop_start(volatile struct mac_iop *iop) static __inline__ void iop_start(volatile struct mac_iop *iop)
...@@ -191,14 +191,9 @@ static __inline__ void iop_start(volatile struct mac_iop *iop) ...@@ -191,14 +191,9 @@ static __inline__ void iop_start(volatile struct mac_iop *iop)
iop->status_ctrl = IOP_RUN | IOP_AUTOINC; iop->status_ctrl = IOP_RUN | IOP_AUTOINC;
} }
static __inline__ void iop_bypass(volatile struct mac_iop *iop)
{
iop->status_ctrl |= IOP_BYPASS;
}
static __inline__ void iop_interrupt(volatile struct mac_iop *iop) static __inline__ void iop_interrupt(volatile struct mac_iop *iop)
{ {
iop->status_ctrl |= IOP_IRQ; iop->status_ctrl = IOP_IRQ | IOP_RUN | IOP_AUTOINC;
} }
static int iop_alive(volatile struct mac_iop *iop) static int iop_alive(volatile struct mac_iop *iop)
...@@ -244,7 +239,6 @@ void __init iop_preinit(void) ...@@ -244,7 +239,6 @@ void __init iop_preinit(void)
} else { } else {
iop_base[IOP_NUM_SCC] = (struct mac_iop *) SCC_IOP_BASE_QUADRA; iop_base[IOP_NUM_SCC] = (struct mac_iop *) SCC_IOP_BASE_QUADRA;
} }
iop_base[IOP_NUM_SCC]->status_ctrl = 0x87;
iop_scc_present = 1; iop_scc_present = 1;
} else { } else {
iop_base[IOP_NUM_SCC] = NULL; iop_base[IOP_NUM_SCC] = NULL;
...@@ -256,7 +250,7 @@ void __init iop_preinit(void) ...@@ -256,7 +250,7 @@ void __init iop_preinit(void)
} else { } else {
iop_base[IOP_NUM_ISM] = (struct mac_iop *) ISM_IOP_BASE_QUADRA; iop_base[IOP_NUM_ISM] = (struct mac_iop *) ISM_IOP_BASE_QUADRA;
} }
iop_base[IOP_NUM_ISM]->status_ctrl = 0; iop_stop(iop_base[IOP_NUM_ISM]);
iop_ism_present = 1; iop_ism_present = 1;
} else { } else {
iop_base[IOP_NUM_ISM] = NULL; iop_base[IOP_NUM_ISM] = NULL;
...@@ -353,8 +347,8 @@ void iop_complete_message(struct iop_msg *msg) ...@@ -353,8 +347,8 @@ void iop_complete_message(struct iop_msg *msg)
int chan = msg->channel; int chan = msg->channel;
int i,offset; int i,offset;
iop_pr_debug("msg %p iop_num %d channel %d\n", msg, msg->iop_num, iop_pr_debug("iop_num %d chan %d reply %*ph\n",
msg->channel); msg->iop_num, msg->channel, IOP_MSG_LEN, msg->reply);
offset = IOP_ADDR_RECV_MSG + (msg->channel * IOP_MSG_LEN); offset = IOP_ADDR_RECV_MSG + (msg->channel * IOP_MSG_LEN);
...@@ -378,6 +372,9 @@ static void iop_do_send(struct iop_msg *msg) ...@@ -378,6 +372,9 @@ static void iop_do_send(struct iop_msg *msg)
volatile struct mac_iop *iop = iop_base[msg->iop_num]; volatile struct mac_iop *iop = iop_base[msg->iop_num];
int i,offset; int i,offset;
iop_pr_debug("iop_num %d chan %d message %*ph\n",
msg->iop_num, msg->channel, IOP_MSG_LEN, msg->message);
offset = IOP_ADDR_SEND_MSG + (msg->channel * IOP_MSG_LEN); offset = IOP_ADDR_SEND_MSG + (msg->channel * IOP_MSG_LEN);
for (i = 0 ; i < IOP_MSG_LEN ; i++, offset++) { for (i = 0 ; i < IOP_MSG_LEN ; i++, offset++) {
...@@ -400,8 +397,6 @@ static void iop_handle_send(uint iop_num, uint chan) ...@@ -400,8 +397,6 @@ static void iop_handle_send(uint iop_num, uint chan)
struct iop_msg *msg; struct iop_msg *msg;
int i,offset; int i,offset;
iop_pr_debug("iop_num %d chan %d\n", iop_num, chan);
iop_writeb(iop, IOP_ADDR_SEND_STATE + chan, IOP_MSG_IDLE); iop_writeb(iop, IOP_ADDR_SEND_STATE + chan, IOP_MSG_IDLE);
if (!(msg = iop_send_queue[iop_num][chan])) return; if (!(msg = iop_send_queue[iop_num][chan])) return;
...@@ -411,11 +406,15 @@ static void iop_handle_send(uint iop_num, uint chan) ...@@ -411,11 +406,15 @@ static void iop_handle_send(uint iop_num, uint chan)
for (i = 0 ; i < IOP_MSG_LEN ; i++, offset++) { for (i = 0 ; i < IOP_MSG_LEN ; i++, offset++) {
msg->reply[i] = iop_readb(iop, offset); msg->reply[i] = iop_readb(iop, offset);
} }
iop_pr_debug("iop_num %d chan %d reply %*ph\n",
iop_num, chan, IOP_MSG_LEN, msg->reply);
if (msg->handler) (*msg->handler)(msg); if (msg->handler) (*msg->handler)(msg);
msg->status = IOP_MSGSTATUS_UNUSED; msg->status = IOP_MSGSTATUS_UNUSED;
msg = msg->next; msg = msg->next;
iop_send_queue[iop_num][chan] = msg; iop_send_queue[iop_num][chan] = msg;
if (msg) iop_do_send(msg); if (msg && iop_readb(iop, IOP_ADDR_SEND_STATE + chan) == IOP_MSG_IDLE)
iop_do_send(msg);
} }
/* /*
...@@ -429,8 +428,6 @@ static void iop_handle_recv(uint iop_num, uint chan) ...@@ -429,8 +428,6 @@ static void iop_handle_recv(uint iop_num, uint chan)
int i,offset; int i,offset;
struct iop_msg *msg; struct iop_msg *msg;
iop_pr_debug("iop_num %d chan %d\n", iop_num, chan);
msg = iop_get_unused_msg(); msg = iop_get_unused_msg();
msg->iop_num = iop_num; msg->iop_num = iop_num;
msg->channel = chan; msg->channel = chan;
...@@ -442,6 +439,8 @@ static void iop_handle_recv(uint iop_num, uint chan) ...@@ -442,6 +439,8 @@ static void iop_handle_recv(uint iop_num, uint chan)
for (i = 0 ; i < IOP_MSG_LEN ; i++, offset++) { for (i = 0 ; i < IOP_MSG_LEN ; i++, offset++) {
msg->message[i] = iop_readb(iop, offset); msg->message[i] = iop_readb(iop, offset);
} }
iop_pr_debug("iop_num %d chan %d message %*ph\n",
iop_num, chan, IOP_MSG_LEN, msg->message);
iop_writeb(iop, IOP_ADDR_RECV_STATE + chan, IOP_MSG_RCVD); iop_writeb(iop, IOP_ADDR_RECV_STATE + chan, IOP_MSG_RCVD);
...@@ -451,9 +450,7 @@ static void iop_handle_recv(uint iop_num, uint chan) ...@@ -451,9 +450,7 @@ static void iop_handle_recv(uint iop_num, uint chan)
if (msg->handler) { if (msg->handler) {
(*msg->handler)(msg); (*msg->handler)(msg);
} else { } else {
iop_pr_debug("unclaimed message on iop_num %d chan %d\n", memset(msg->reply, 0, IOP_MSG_LEN);
iop_num, chan);
iop_pr_debug("%*ph\n", IOP_MSG_LEN, msg->message);
iop_complete_message(msg); iop_complete_message(msg);
} }
} }
...@@ -489,16 +486,12 @@ int iop_send_message(uint iop_num, uint chan, void *privdata, ...@@ -489,16 +486,12 @@ int iop_send_message(uint iop_num, uint chan, void *privdata,
if (!(q = iop_send_queue[iop_num][chan])) { if (!(q = iop_send_queue[iop_num][chan])) {
iop_send_queue[iop_num][chan] = msg; iop_send_queue[iop_num][chan] = msg;
iop_do_send(msg);
} else { } else {
while (q->next) q = q->next; while (q->next) q = q->next;
q->next = msg; q->next = msg;
} }
if (iop_readb(iop_base[iop_num],
IOP_ADDR_SEND_STATE + chan) == IOP_MSG_IDLE) {
iop_do_send(msg);
}
return 0; return 0;
} }
...@@ -567,35 +560,34 @@ irqreturn_t iop_ism_irq(int irq, void *dev_id) ...@@ -567,35 +560,34 @@ irqreturn_t iop_ism_irq(int irq, void *dev_id)
int i,state; int i,state;
u8 events = iop->status_ctrl & (IOP_INT0 | IOP_INT1); u8 events = iop->status_ctrl & (IOP_INT0 | IOP_INT1);
iop_pr_debug("status %02X\n", iop->status_ctrl);
do { do {
iop_pr_debug("iop_num %d status %02X\n", iop_num,
iop->status_ctrl);
/* INT0 indicates state change on an outgoing message channel */ /* INT0 indicates state change on an outgoing message channel */
if (events & IOP_INT0) { if (events & IOP_INT0) {
iop->status_ctrl = IOP_INT0 | IOP_RUN | IOP_AUTOINC; iop->status_ctrl = IOP_INT0 | IOP_RUN | IOP_AUTOINC;
iop_pr_debug("new status %02X, send states",
iop->status_ctrl);
for (i = 0; i < NUM_IOP_CHAN; i++) { for (i = 0; i < NUM_IOP_CHAN; i++) {
state = iop_readb(iop, IOP_ADDR_SEND_STATE + i); state = iop_readb(iop, IOP_ADDR_SEND_STATE + i);
iop_pr_cont(" %02X", state);
if (state == IOP_MSG_COMPLETE) if (state == IOP_MSG_COMPLETE)
iop_handle_send(iop_num, i); iop_handle_send(iop_num, i);
else if (state != IOP_MSG_IDLE)
iop_pr_debug("chan %d send state %02X\n",
i, state);
} }
iop_pr_cont("\n");
} }
/* INT1 for incoming messages */ /* INT1 for incoming messages */
if (events & IOP_INT1) { if (events & IOP_INT1) {
iop->status_ctrl = IOP_INT1 | IOP_RUN | IOP_AUTOINC; iop->status_ctrl = IOP_INT1 | IOP_RUN | IOP_AUTOINC;
iop_pr_debug("new status %02X, recv states",
iop->status_ctrl);
for (i = 0; i < NUM_IOP_CHAN; i++) { for (i = 0; i < NUM_IOP_CHAN; i++) {
state = iop_readb(iop, IOP_ADDR_RECV_STATE + i); state = iop_readb(iop, IOP_ADDR_RECV_STATE + i);
iop_pr_cont(" %02X", state);
if (state == IOP_MSG_NEW) if (state == IOP_MSG_NEW)
iop_handle_recv(iop_num, i); iop_handle_recv(iop_num, i);
else if (state != IOP_MSG_IDLE)
iop_pr_debug("chan %d recv state %02X\n",
i, state);
} }
iop_pr_cont("\n");
} }
events = iop->status_ctrl & (IOP_INT0 | IOP_INT1); events = iop->status_ctrl & (IOP_INT0 | IOP_INT1);
......
...@@ -5,4 +5,4 @@ ...@@ -5,4 +5,4 @@
obj-y := sun3ints.o sun3dvma.o idprom.o obj-y := sun3ints.o sun3dvma.o idprom.o
obj-$(CONFIG_SUN3) += config.o mmu_emu.o leds.o dvma.o intersil.o obj-$(CONFIG_SUN3) += config.o mmu_emu.o leds.o dvma.o intersil.o prom/
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment