Commit 54f1543d authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://ppc.bkbits.net/for-linus-ppc

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 7200ebc9 704a6dfc
......@@ -12,17 +12,12 @@ EPS-parportbook := $(patsubst %.fig, %.eps, $(IMG-parportbook))
PNG-parportbook := $(patsubst %.fig, %.png, $(IMG-parportbook))
C-procfs-example = procfs_example.sgml
$(TOPDIR)/scripts/docgen: FORCE
chmod 755 $(TOPDIR)/scripts/docgen
$(TOPDIR)/scripts/docgen $(TOPDIR)/scripts/gen-all-syms \
$(TOPDIR)/scripts/kernel-doc $(TOPDIR)/scripts/docproc: doc-progs ;
$(TOPDIR)/scripts/gen-all-syms: FORCE
chmod 755 $(TOPDIR)/scripts/gen-all-syms
$(TOPDIR)/scripts/kernel-doc: FORCE
chmod 755 $(TOPDIR)/scripts/kernel-doc
$(TOPDIR)/scripts/docproc: FORCE
$(MAKE) -C $(TOPDIR)/scripts docproc
.PHONY: doc-progs
doc-progs:
@$(MAKE) -C $(TOPDIR)/scripts doc-progs
$(BOOKS): $(TOPDIR)/scripts/docgen $(TOPDIR)/scripts/gen-all-syms \
$(TOPDIR)/scripts/kernel-doc $(TOPDIR)/scripts/docproc
......
......@@ -212,7 +212,7 @@ When ide.c is used as a module, you can pass command line parameters to the
driver using the "options=" keyword to insmod, while replacing any ',' with
';'. For example:
insmod ide.o options="ide0=serialize ide2=0x1e8;0x3ee;11"
insmod ide.o options="ide0=serialize ide1=serialize ide2=0x1e8;0x3ee;11"
================================================================================
......@@ -220,21 +220,29 @@ driver using the "options=" keyword to insmod, while replacing any ',' with
Summary of ide driver parameters for kernel "command line":
----------------------------------------------------------
"hdx=" is recognized for all "x" from "a" to "h", such as "hdc".
"idex=" is recognized for all "x" from "0" to "3", such as "ide1".
"hdx=noprobe" : drive may be present, but do not probe for it
"hdx=none" : drive is NOT present, ignore cmos and do not probe
"hdx=nowerr" : ignore the WRERR_STAT bit on this drive
"hdx=cdrom" : drive is present, and is a cdrom drive
"hdx=cyl,head,sect" : disk drive is present, with specified geometry
"hdx=autotune" : driver will attempt to tune interface speed
to the fastest PIO mode supported,
if possible for this drive only.
Not fully supported by all chipset types,
and quite likely to cause trouble with
older/odd IDE drives.
"hdx=slow" : insert a huge pause after each access to the data
port. Should be used only as a last resort.
"hdxlun=xx" : set the drive last logical unit
"idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz,
......@@ -248,22 +256,33 @@ Summary of ide driver parameters for kernel "command line":
Bigger values are safer than smaller ones.
"idex=noprobe" : do not attempt to access/use this interface
"idex=base" : probe for an interface at the addr specified,
where "base" is usually 0x1f0 or 0x170
and "ctl" is assumed to be "base"+0x206
"idex=base,ctl" : specify both base and ctl
"idex=base,ctl,irq" : specify base, ctl, and irq number
"idex=autotune" : driver will attempt to tune interface speed
to the fastest PIO mode supported,
for all drives on this interface.
Not fully supported by all chipset types,
and quite likely to cause trouble with
older/odd IDE drives.
"idex=noautotune" : driver will NOT attempt to tune interface speed
This is the default for most chipsets,
except the cmd640.
"idex=serialize" : do not overlap operations on idex and ide(x^1)
"idex=serialize" : do not overlap operations on idex. Please note
that you will have to specify this option for
both the respecitve primary and secondary channel
to take effect.
"idex=reset" : reset interface after probe
"idex=dma" : automatically configure/use DMA if possible.
The following are valid ONLY on ide0, which usually corresponds to the first
......@@ -304,6 +323,6 @@ drives.
mlord@pobox.com
--
Wed Apr 17 22:52:44 CEST 2002 edited by Marcin Dalecki
For current maintainers of this stuff, please see the linux/MAINTAINERS file.
Wed Apr 17 22:52:44 CEST 2002 edited by Marcin Dalecki, the current
maintainer.
......@@ -110,56 +110,8 @@ NETWORKS =net/network.o
LIBS =$(TOPDIR)/lib/lib.a
SUBDIRS =init kernel lib drivers mm fs net ipc sound
DRIVERS-n :=
DRIVERS-y :=
DRIVERS-m :=
DRIVERS- :=
DRIVERS-$(CONFIG_PCI) += drivers/pci/driver.o
DRIVERS-$(CONFIG_ACPI) += drivers/acpi/acpi.o
DRIVERS-$(CONFIG_PARPORT) += drivers/parport/driver.o
DRIVERS-y += drivers/base/base.o \
drivers/char/char.o \
drivers/block/block.o \
drivers/misc/misc.o \
drivers/net/net.o \
drivers/media/media.o
DRIVERS-$(CONFIG_NUBUS) += drivers/nubus/built-in.o
DRIVERS-$(CONFIG_ATM) += drivers/atm/atm.o
DRIVERS-$(CONFIG_IDE) += drivers/ide/idedriver.o
DRIVERS-$(CONFIG_FC4) += drivers/fc4/built-in.o
DRIVERS-$(CONFIG_SCSI) += drivers/scsi/scsidrv.o
DRIVERS-$(CONFIG_FUSION) += drivers/message/message.o
DRIVERS-$(CONFIG_IEEE1394) += drivers/ieee1394/ieee1394drv.o
ifneq ($(CONFIG_CD_NO_IDESCSI)$(CONFIG_BLK_DEV_IDECD)$(CONFIG_BLK_DEV_SR)$(CONFIG_PARIDE_PCD),)
DRIVERS-y += drivers/cdrom/driver.o
endif
DRIVERS-y = drivers/built-in.o
DRIVERS-$(CONFIG_SOUND) += sound/sound.o
DRIVERS-$(CONFIG_MTD) += drivers/mtd/mtdlink.o
DRIVERS-$(CONFIG_PCMCIA) += drivers/pcmcia/pcmcia.o
DRIVERS-$(CONFIG_DIO) += drivers/dio/built-in.o
DRIVERS-$(CONFIG_SBUS) += drivers/sbus/sbus_all.o
DRIVERS-$(CONFIG_ZORRO) += drivers/zorro/driver.o
DRIVERS-$(CONFIG_ALL_PPC) += drivers/macintosh/macintosh.o
DRIVERS-$(CONFIG_MAC) += drivers/macintosh/macintosh.o
DRIVERS-$(CONFIG_PNP) += drivers/pnp/pnp.o
DRIVERS-$(CONFIG_SGI_IP22) += drivers/sgi/built-in.o
DRIVERS-$(CONFIG_VT) += drivers/video/video.o
DRIVERS-$(CONFIG_PARIDE) += drivers/block/paride/built-in.o
DRIVERS-$(CONFIG_TC) += drivers/tc/built-in.o
DRIVERS-$(CONFIG_USB) += drivers/usb/usbdrv.o
DRIVERS-$(CONFIG_INPUT) += drivers/input/inputdrv.o
DRIVERS-$(CONFIG_GAMEPORT) += drivers/input/gameport/gamedrv.o
DRIVERS-$(CONFIG_SERIO) += drivers/input/serio/seriodrv.o
DRIVERS-$(CONFIG_I2O) += drivers/message/message.o
DRIVERS-$(CONFIG_I2C) += drivers/i2c/i2c.o
DRIVERS-$(CONFIG_PHONE) += drivers/telephony/telephony.o
DRIVERS-$(CONFIG_MD) += drivers/md/mddev.o
DRIVERS-$(CONFIG_BLUEZ) += drivers/bluetooth/bluetooth.o
DRIVERS-$(CONFIG_HOTPLUG_PCI) += drivers/hotplug/vmlinux-obj.o
DRIVERS-$(CONFIG_ISDN) += drivers/isdn/vmlinux-obj.o
DRIVERS := $(DRIVERS-y)
......@@ -219,9 +171,24 @@ $(sort $(vmlinux-objs)): $(SUBDIRS) ;
# Handle descending into subdirectories listed in $(SUBDIRS)
.PHONY: $(SUBDIRS)
$(SUBDIRS): FORCE include/linux/version.h include/config/MARKER
@$(MAKE) -C $@
# Single targets
# ---------------------------------------------------------------------------
%.s: %.c FORCE
@$(MAKE) -C $(@D) $(@F)
%.i: %.c FORCE
@$(MAKE) -C $(@D) $(@F)
%.o: %.c FORCE
@$(MAKE) -C $(@D) $(@F)
%.s: %.S FORCE
@$(MAKE) -C $(@D) $(@F)
%.o: %.S FORCE
@$(MAKE) -C $(@D) $(@F)
# Configuration
# ---------------------------------------------------------------------------
......@@ -262,6 +229,11 @@ include/linux/version.h: ./Makefile
@echo Generating $@
@. scripts/mkversion_h $@ $(KERNELRELEASE) $(VERSION) $(PATCHLEVEL) $(SUBLEVEL)
# helpers built in scripts/
scripts/mkdep scripts/split-include : FORCE
@$(MAKE) -C scripts
# ---------------------------------------------------------------------------
# Generate dependencies
......@@ -269,11 +241,34 @@ depend dep: dep-files
dep-files: scripts/mkdep archdep include/linux/version.h
scripts/mkdep -- `find $(FINDHPATH) -name SCCS -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend
$(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
@$(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS))
ifdef CONFIG_MODVERSIONS
$(MAKE) update-modverfile
endif
.PHONY: $(patsubst %,_sfdep_%,$(SUBDIRS))
$(patsubst %,_sfdep_%,$(SUBDIRS)): FORCE
@$(MAKE) -C $(patsubst _sfdep_%, %, $@) fastdep
# update modversions.h, but only if it would change
update-modverfile:
@(echo "#ifndef _LINUX_MODVERSIONS_H";\
echo "#define _LINUX_MODVERSIONS_H"; \
echo "#include <linux/modsetver.h>"; \
cd $(TOPDIR)/include/linux/modules; \
for f in *.ver; do \
if [ -f $$f ]; then echo "#include <linux/modules/$${f}>"; fi; \
done; \
echo "#endif"; \
) > $(TOPDIR)/include/linux/modversions.h.tmp
@if [ -r $(TOPDIR)/include/linux/modversions.h ] && cmp -s $(TOPDIR)/include/linux/modversions.h $(TOPDIR)/include/linux/modversions.h.tmp; then \
echo $(TOPDIR)/include/linux/modversions.h was not updated; \
rm -f $(TOPDIR)/include/linux/modversions.h.tmp; \
else \
echo $(TOPDIR)/include/linux/modversions.h was updated; \
mv -f $(TOPDIR)/include/linux/modversions.h.tmp $(TOPDIR)/include/linux/modversions.h; \
fi
# ---------------------------------------------------------------------------
# Modules
......@@ -337,19 +332,6 @@ modules modules_install: FORCE
endif # CONFIG_MODULES
# ---------------------------------------------------------------------------
include Rules.make
# Build helpers in scripts/
# FIXME: do that in scripts/Makefile?
scripts/mkdep: scripts/mkdep.c
$(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep scripts/mkdep.c
scripts/split-include: scripts/split-include.c
$(HOSTCC) $(HOSTCFLAGS) -o scripts/split-include scripts/split-include.c
# Cleaning up
# ---------------------------------------------------------------------------
......@@ -507,3 +489,4 @@ if_changed_rule = $(if $(strip $? \
$(filter-out $(cmd_$(@F)),$(cmd_$(1)))),\
@$(rule_$(1)))
FORCE:
......@@ -2,30 +2,6 @@
# This file contains rules which are shared between multiple Makefiles.
#
#
# Special variables which should not be exported
#
unexport EXTRA_AFLAGS
unexport EXTRA_CFLAGS
unexport EXTRA_LDFLAGS
unexport EXTRA_ARFLAGS
unexport SUBDIRS
unexport SUB_DIRS
unexport ALL_SUB_DIRS
unexport MOD_SUB_DIRS
unexport O_TARGET
unexport obj-y
unexport obj-m
unexport obj-n
unexport obj-
unexport export-objs
unexport subdir-y
unexport subdir-m
unexport subdir-n
unexport subdir-
unexport mod-subdirs
# Some standard vars
comma := ,
......@@ -76,7 +52,7 @@ obj-m := $(filter-out %/, $(obj-m))
# add it to $(subdir-m)
both-m := $(filter $(mod-subdirs), $(subdir-y))
SUB_DIRS := $(subdir-y)
SUB_DIRS := $(subdir-y) $(if $(BUILD_MODULES),$(subdir-m))
MOD_SUB_DIRS := $(sort $(subdir-m) $(both-m))
ALL_SUB_DIRS := $(sort $(subdir-y) $(subdir-m) $(subdir-n) $(subdir-))
......@@ -107,14 +83,14 @@ multi-objs-m := $(foreach m, $(multi-used-m), $($(m:.o=-objs)))
subdir-obj-y := $(foreach o,$(obj-y),$(if $(filter-out $(o),$(notdir $(o))),$(o)))
# Replace multi-part objects by their individual parts, look at local dir only
real-objs-y := $(foreach m, $(filter-out $(subdir-obj-y), $(obj-y)), $(if $($(m:.o=-objs)),$($(m:.o=-objs)),$(m)))
real-objs-y := $(foreach m, $(filter-out $(subdir-obj-y), $(obj-y)), $(if $($(m:.o=-objs)),$($(m:.o=-objs)),$(m))) $(EXTRA_TARGETS)
real-objs-m := $(foreach m, $(obj-m), $(if $($(m:.o=-objs)),$($(m:.o=-objs)),$(m)))
# ==========================================================================
#
# Get things started.
#
first_rule: all_targets
first_rule: vmlinux $(if $(BUILD_MODULES),$(obj-m))
#
# Common rules
......@@ -136,15 +112,17 @@ $(real-objs-m:.o=.i): modkern_cflags := $(CFLAGS_MODULE)
$(real-objs-m:.o=.s): modkern_cflags := $(CFLAGS_MODULE)
$(export-objs) : export_flags := $(EXPORT_FLAGS)
$(export-objs:.o=.i): export_flags := $(EXPORT_FLAGS)
$(export-objs:.o=.s): export_flags := $(EXPORT_FLAGS)
c_flags = $(CFLAGS) $(modkern_cflags) $(EXTRA_CFLAGS) $(CFLAGS_$(*F).o) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(export_flags)
cmd_cc_s_c = $(CC) $(c_flags) -S $< -o $@
cmd_cc_s_c = $(CC) $(c_flags) -S -o $@ $<
%.s: %.c FORCE
$(call if_changed,cmd_cc_s_c)
cmd_cc_i_c = $(CPP) $(c_flags) $< > $@
cmd_cc_i_c = $(CPP) $(c_flags) -o $@ $<
%.i: %.c FORCE
$(call if_changed,cmd_cc_i_c)
......@@ -168,7 +146,7 @@ $(real-objs-m:.o=.s): modkern_aflags := $(AFLAGS_MODULE)
a_flags = $(AFLAGS) $(modkern_aflags) $(EXTRA_AFLAGS) $(AFLAGS_$(*F).o)
cmd_as_s_S = $(CPP) $(a_flags) $< > $@
cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<
%.s: %.S FORCE
$(call if_changed,cmd_as_s_S)
......@@ -197,7 +175,7 @@ endif
# Build the compiled-in targets
# ---------------------------------------------------------------------------
all_targets: $(O_TARGET) $(L_TARGET) sub_dirs
vmlinux: $(O_TARGET) $(L_TARGET) $(EXTRA_TARGETS) sub_dirs
# To build objects in subdirs, we need to descend into the directories
$(sort $(subdir-obj-y)): sub_dirs ;
......@@ -282,8 +260,7 @@ $(patsubst %,_modinst_%,$(MOD_SUB_DIRS)) : FORCE
endif
.PHONY: modules
modules: $(obj-m) FORCE \
$(patsubst %,_modsubdir_%,$(MOD_SUB_DIRS))
modules: $(obj-m) FORCE $(patsubst %,_modsubdir_%,$(MOD_SUB_DIRS))
.PHONY: _modinst__
_modinst__: FORCE
......@@ -293,8 +270,7 @@ ifneq "$(strip $(obj-m))" ""
endif
.PHONY: modules_install
modules_install: _modinst__ \
$(patsubst %,_modinst_%,$(MOD_SUB_DIRS))
modules_install: _modinst__ $(patsubst %,_modinst_%,$(MOD_SUB_DIRS))
# Add FORCE to the prequisites of a target to force it to be always rebuilt.
......@@ -350,30 +326,8 @@ $(addprefix $(MODINCL)/$(MODPREFIX),$(export-objs:.o=.ver)): $(TOPDIR)/include/l
# updates .ver files but not modversions.h
fastdep: $(addprefix $(MODINCL)/$(MODPREFIX),$(export-objs:.o=.ver))
# updates .ver files and modversions.h like before (is this needed?)
dep: fastdep update-modverfile
endif # export-objs
# update modversions.h, but only if it would change
update-modverfile:
@(echo "#ifndef _LINUX_MODVERSIONS_H";\
echo "#define _LINUX_MODVERSIONS_H"; \
echo "#include <linux/modsetver.h>"; \
cd $(TOPDIR)/include/linux/modules; \
for f in *.ver; do \
if [ -f $$f ]; then echo "#include <linux/modules/$${f}>"; fi; \
done; \
echo "#endif"; \
) > $(TOPDIR)/include/linux/modversions.h.tmp
@if [ -r $(TOPDIR)/include/linux/modversions.h ] && cmp -s $(TOPDIR)/include/linux/modversions.h $(TOPDIR)/include/linux/modversions.h.tmp; then \
echo $(TOPDIR)/include/linux/modversions.h was not updated; \
rm -f $(TOPDIR)/include/linux/modversions.h.tmp; \
else \
echo $(TOPDIR)/include/linux/modversions.h was updated; \
mv -f $(TOPDIR)/include/linux/modversions.h.tmp $(TOPDIR)/include/linux/modversions.h; \
fi
$(active-objs): $(TOPDIR)/include/linux/modversions.h
else
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
O_TARGET := kernel.o
EXTRA_TARGETS := head.o
EXTRA_AFLAGS := $(CFLAGS)
......@@ -97,7 +93,7 @@ endif
endif # GENERIC
all: kernel.o head.o
include $(TOPDIR)/Rules.make
ASM_OFFSETS_H = $(TOPDIR)/include/asm-alpha/asm_offsets.h
asm_offsets:
......@@ -112,4 +108,3 @@ asm_offsets:
clean::
rm -f check_asm
include $(TOPDIR)/Rules.make
......@@ -189,7 +189,7 @@ endif
ifeq ($(findstring y,$(CONFIG_ARCH_CLPS7500) $(CONFIG_ARCH_L7200)),y)
SUBDIRS +=drivers/acorn/char
DRIVERS +=drivers/acorn/char/acorn-char.o
DRIVERS +=drivers/acorn/char/built-in.o
endif
MAKEBOOT =$(MAKE) -C arch/$(ARCH)/boot
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
O_TARGET := kernel.o
ENTRY_OBJ = entry-$(PROCESSOR).o
AFLAGS_head.o := -DTEXTADDR=$(TEXTADDR)
O_TARGET := kernel.o
# Object file lists.
obj-y := arch.o compat.o dma.o $(ENTRY_OBJ) entry-common.o irq.o \
......@@ -43,7 +40,7 @@ head-y := head.o
obj-$(CONFIG_DEBUG_LL) += debug.o
endif
all: kernel.o $(head-y) init_task.o
EXTRA_TARGETS := $(head-y) init_task.o
include $(TOPDIR)/Rules.make
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
O_TARGET := arc.o
......@@ -19,8 +16,8 @@ export-objs := oldlatches.o
obj-$(CONFIG_DEBUG_LL) += debug.o
all: arc.o head.o
include $(TOPDIR)/Rules.make
EXTRA_TARGETS := head.o
AFLAGS_head.o := -DTEXTADDR=$(TEXTADDR)
include $(TOPDIR)/Rules.make
......@@ -2,15 +2,9 @@
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
all: kernel.o head.o
O_TARGET := kernel.o
EXTRA_TARGETS := head.o
export-objs := ksyms.o
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
EXTRA_AFLAGS := -traditional
all: kernel.o head.o init_task.o
EXTRA_TARGETS := head.o init_task.o
O_TARGET := kernel.o
......@@ -36,4 +29,6 @@ obj-y += setup-visws.o
obj-$(CONFIG_X86_VISWS_APIC) += visws_apic.o
endif
EXTRA_AFLAGS := -traditional
include $(TOPDIR)/Rules.make
......@@ -395,6 +395,11 @@ BUILD_INTERRUPT(call_function_interrupt,CALL_FUNCTION_VECTOR)
BUILD_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR)
BUILD_INTERRUPT(error_interrupt,ERROR_APIC_VECTOR)
BUILD_INTERRUPT(spurious_interrupt,SPURIOUS_APIC_VECTOR)
#ifdef CONFIG_X86_MCE_P4THERMAL
BUILD_INTERRUPT(thermal_interrupt,THERMAL_APIC_VECTOR)
#endif
#endif
ENTRY(divide_error)
......
......@@ -407,7 +407,7 @@ void __init init_IRQ(void)
/* thermal monitor LVT interrupt */
#ifdef CONFIG_X86_MCE_P4THERMAL
set_intr_gate(THERMAL_APIC_VECTOR, smp_thermal_interrupt);
set_intr_gate(THERMAL_APIC_VECTOR, thermal_interrupt);
#endif
#endif
......
......@@ -5,13 +5,9 @@
# Copyright (C) Srinivasa Thirumalachar (sprasad@engr.sgi.com)
#
all: dig.a
O_TARGET := dig.a
obj-y := setup.o
obj-$(CONFIG_IA64_GENERIC) += machvec.o
clean::
include $(TOPDIR)/Rules.make
......@@ -2,13 +2,9 @@
# Makefile for the ia32 kernel emulation subsystem.
#
all: ia32.o
O_TARGET := ia32.o
obj-y := ia32_entry.o sys_ia32.o ia32_ioctl.o ia32_signal.o ia32_support.o ia32_traps.o \
binfmt_elf32.o ia32_ldt.o
clean::
include $(TOPDIR)/Rules.make
......@@ -322,7 +322,7 @@ ia32_syscall_table:
data8 sys32_ni_syscall /* init_module */
data8 sys32_ni_syscall /* delete_module */
data8 sys32_ni_syscall /* get_kernel_syms */ /* 130 */
data8 sys32_quotactl
data8 sys_quotactl
data8 sys_getpgid
data8 sys_fchdir
data8 sys32_ni_syscall /* sys_bdflush */
......
......@@ -3669,97 +3669,6 @@ getname32 (const char *filename)
return result;
}
extern asmlinkage long sys_quotactl(int cmd, const char *special, int id, caddr_t addr);
#ifdef CONFIG_QIFACE_COMPAT
#ifdef CONFIG_QIFACE_V1
struct user_dqblk32 {
__u32 dqb_bhardlimit;
__u32 dqb_bsoftlimit;
__u32 dqb_curblocks;
__u32 dqb_ihardlimit;
__u32 dqb_isoftlimit;
__u32 dqb_curinodes;
__kernel_time_t32 dqb_btime;
__kernel_time_t32 dqb_itime;
};
typedef struct v1c_mem_dqblk comp_dqblk_t;
#define Q_COMP_GETQUOTA Q_V1_GETQUOTA
#define Q_COMP_SETQUOTA Q_V1_SETQUOTA
#define Q_COMP_SETQLIM Q_V1_SETQLIM
#define Q_COMP_SETUSE Q_V1_SETUSE
#else
struct user_dqblk32 {
__u32 dqb_ihardlimit;
__u32 dqb_isoftlimit;
__u32 dqb_curinodes;
__u32 dqb_bhardlimit;
__u32 dqb_bsoftlimit;
__u64 dqb_curspace;
__kernel_time_t32 dqb_btime;
__kernel_time_t32 dqb_itime;
};
typedef struct v2c_mem_dqblk comp_dqblk_t;
#define Q_COMP_GETQUOTA Q_V2_GETQUOTA
#define Q_COMP_SETQUOTA Q_V2_SETQUOTA
#define Q_COMP_SETQLIM Q_V2_SETQLIM
#define Q_COMP_SETUSE Q_V2_SETUSE
#endif
asmlinkage long sys32_quotactl(int cmd, const char *special, int id, caddr_t addr)
{
int cmds = cmd >> SUBCMDSHIFT;
long err;
comp_dqblk_t d;
mm_segment_t old_fs;
char *spec;
switch (cmds) {
case Q_COMP_GETQUOTA:
break;
case Q_COMP_SETQUOTA:
case Q_COMP_SETUSE:
case Q_COMP_SETQLIM:
if (copy_from_user(&d, (struct user_dqblk32 *)addr,
sizeof (struct user_dqblk32)))
return -EFAULT;
d.dqb_itime = ((struct user_dqblk32 *)&d)->dqb_itime;
d.dqb_btime = ((struct user_dqblk32 *)&d)->dqb_btime;
break;
default:
return sys_quotactl(cmd, special, id, (__kernel_caddr_t)addr);
}
spec = getname (special);
err = PTR_ERR(spec);
if (IS_ERR(spec)) return err;
old_fs = get_fs();
set_fs (KERNEL_DS);
err = sys_quotactl(cmd, (const char *)spec, id, (__kernel_caddr_t)&d);
set_fs (old_fs);
putname (spec);
if (err)
return err;
if (cmds == Q_COMP_GETQUOTA) {
__kernel_time_t b = d.dqb_btime, i = d.dqb_itime;
((struct user_dqblk32 *)&d)->dqb_itime = i;
((struct user_dqblk32 *)&d)->dqb_btime = b;
if (copy_to_user ((struct user_dqblk32 *)addr, &d,
sizeof (struct user_dqblk32)))
return -EFAULT;
}
return 0;
}
#else
/* No conversion needed for new interface */
asmlinkage long sys32_quotactl(int cmd, const char *special, int id, caddr_t addr)
{
return sys_quotactl(cmd, special, id, addr);
}
#endif
asmlinkage long
sys32_sched_rr_get_interval (pid_t pid, struct timespec32 *interval)
{
......
......@@ -2,9 +2,8 @@
# Makefile for the linux kernel.
#
all: kernel.o head.o init_task.o
O_TARGET := kernel.o
EXTRA_TARGETS := head.o init_task.o
export-objs := ia64_ksyms.o
......
......@@ -32,14 +32,10 @@
# http://oss.sgi.com/projects/GenInfo/NoticeExplan
#
EXTRA_CFLAGS := -DLITTLE_ENDIAN
all: sn1.a
O_TARGET := sn1.a
O_TARGET = sn1.a
obj-y := cache.o error.o iomv.o synergy.o sn1_smp.o
obj-y = cache.o error.o iomv.o synergy.o sn1_smp.o
clean::
EXTRA_CFLAGS := -DLITTLE_ENDIAN
include $(TOPDIR)/Rules.make
......@@ -32,14 +32,11 @@
# http://oss.sgi.com/projects/GenInfo/NoticeExplan
#
EXTRA_CFLAGS := -DLITTLE_ENDIAN
all: sn2.a
O_TARGET = sn2.a
O_TARGET := sn2.a
obj-y = cache.o iomv.o sn2_smp.o
obj-y := cache.o iomv.o sn2_smp.o
clean::
EXTRA_CFLAGS := -DLITTLE_ENDIAN
include $(TOPDIR)/Rules.make
#
# Makefile for Linux arch/m68k/fpsp040 source directory
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
EXTRA_AFLAGS := -traditional
OS_TARGET := fpsp.o
O_TARGET := fpsp.o
OS_OBJS := bindec.o binstr.o decbin.o do_func.o gen_except.o get_op.o \
obj-y := bindec.o binstr.o decbin.o do_func.o gen_except.o get_op.o \
kernel_ex.o res_func.o round.o sacos.o sasin.o satan.o satanh.o \
scosh.o setox.o sgetem.o sint.o slog2.o slogn.o \
smovecr.o srem_mod.o scale.o \
......@@ -19,11 +12,9 @@ OS_OBJS := bindec.o binstr.o decbin.o do_func.o gen_except.o get_op.o \
x_bsun.o x_fline.o x_operr.o x_ovfl.o x_snan.o x_store.o \
x_unfl.o x_unimp.o x_unsupp.o bugfix.o skeleton.o
all: $(OS_TARGET)
EXTRA_AFLAGS := -traditional
EXTRA_LDFLAGS := -x
include $(TOPDIR)/Rules.make
$(OS_OBJS): fpsp.h
$(OS_TARGET): $(OS_OBJS) fpsp.h
$(LD) -x -r -o $(OS_TARGET) $(OS_OBJS)
......@@ -4,17 +4,11 @@
# License. See the file "README.legal" in the main directory of this archive
# for more details.
EXTRA_AFLAGS := -traditional
OS_TARGET := ifpsp.o
O_TARGET := ifpsp.o
OS_OBJS := fskeleton.o iskeleton.o os.o
obj-y := fskeleton.o iskeleton.o os.o
all: $(OS_TARGET)
EXTRA_AFLAGS := -traditional
EXTRA_LDFLAGS := -x
include $(TOPDIR)/Rules.make
$(OS_OBJS):
$(OS_TARGET): $(OS_OBJS)
$(LD) -x -r -o $(OS_TARGET) $(OS_OBJS)
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
EXTRA_AFLAGS := -traditional
O_TARGET := kernel.o
ifndef CONFIG_SUN3
all: head.o kernel.o
EXTRA_TARGETS := head.o
else
all: sun3-head.o kernel.o
EXTRA_TARGETS := sun3-head.o
endif
O_TARGET := kernel.o
export-objs := setup.o m68k_ksyms.o
obj-y := entry.o process.o traps.o ints.o signal.o ptrace.o \
......@@ -24,6 +17,10 @@ obj-y := entry.o process.o traps.o ints.o signal.o ptrace.o \
obj-$(CONFIG_PCI) += bios32.o
EXTRA_AFLAGS := -traditional
include $(TOPDIR)/Rules.make
head.o: head.S m68k_defs.h
entry.o: entry.S m68k_defs.h
......@@ -39,4 +36,3 @@ m68k_defs.h: m68k_defs.c m68k_defs.head
rm m68k_defs.s
-include m68k_defs.d
include $(TOPDIR)/Rules.make
......@@ -5,14 +5,6 @@
#
# Makefile for the Alchemy Au1000 CPU, generic files.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
EXTRA_AFLAGS := $(CFLAGS)
all: au1000.o
O_TARGET := au1000.o
......@@ -22,7 +14,9 @@ obj-$(CONFIG_AU1000_UART) += serial.o
obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
obj-$(CONFIG_BLK_DEV_INITRD) += ramdisk.o
ramdisk.o:
mkramobj ramdisk ramdisk.o
EXTRA_AFLAGS := $(CFLAGS)
include $(TOPDIR)/Rules.make
ramdisk.o:
mkramobj ramdisk ramdisk.o
......@@ -5,12 +5,6 @@
#
# Makefile for the Alchemy Semiconductor PB1000 board.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
all: pb1000.o
O_TARGET := pb1000.o
......
......@@ -2,13 +2,6 @@
# Makefile for the Baget specific kernel interface routines
# under Linux.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
all: baget.a
O_TARGET := baget.a
......@@ -18,10 +11,11 @@ obj-y := baget.o print.o setup.o time.o irq.o bagetIRQ.o \
obj-$(CONFIG_SERIAL) += vacserial.o
obj-$(CONFIG_VAC_RTC) += vacrtc.o
include $(TOPDIR)/Rules.make
bagetIRQ.o : bagetIRQ.S
$(CC) $(CFLAGS) -c -o $@ $<
##################### Baget Loader stuff ########################
image: ../../../vmlinux
......@@ -61,4 +55,3 @@ balo: balo.o dummy.o balo_supp.o print.o
clean:
rm -f balo balo.h dummy.c image image.bin
include $(TOPDIR)/Rules.make
#
# Makefile for the DECstation family specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
O_TARGET := dec.o
all: dec.o
export-objs := wbflush.o
obj-y := int-handler.o setup.o irq.o time.o reset.o rtc-dec.o wbflush.o
obj-$(CONFIG_PROM_CONSOLE) += promcon.o
int-handler.o: int-handler.S
include $(TOPDIR)/Rules.make
#
# Makefile for the DECstation family specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
netboot: all
mipsel-linux-ld -N -G 0 -T ld.ecoff ../../boot/zImage \
dec_boot.o ramdisk.img -o nbImage
all: dec_boot.o
O_TARGET := dec_boot.o
obj-y := decstation.o
......
......@@ -2,25 +2,14 @@
# Makefile for the DECstation prom monitor library routines
# under Linux.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
EXTRA_AFLAGS := $(CFLAGS)
OBJS = init.o memory.o cmdline.o identify.o locore.o
L_TARGET := rexlib.a
all: rexlib.a
obj-y := init.o memory.o cmdline.o identify.o locore.o
rexlib.a: $(OBJS)
$(AR) rcs rexlib.a $(OBJS)
sync
EXTRA_AFLAGS := $(CFLAGS)
locore.o: locore.S
include $(TOPDIR)/Rules.make
dep:
$(CPP) $(CPPFLAGS) -M *.c > .depend
include $(TOPDIR)/Rules.make
......@@ -5,14 +5,6 @@
#
# Makefile for the ITE 8172 (qed-4n-s01b) board, generic files.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
EXTRA_AFLAGS := $(CFLAGS)
all: it8172.o
O_TARGET := it8172.o
......@@ -30,4 +22,6 @@ ifdef CONFIG_REMOTE_DEBUG
obj-y += dbg_io.o
endif
EXTRA_AFLAGS := $(CFLAGS)
include $(TOPDIR)/Rules.make
......@@ -6,18 +6,12 @@
# Makefile for the Globespan IVR board,
# board-specific files.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
all: ivr.o
O_TARGET := ivr.o
obj-y := init.o
obj-CONFIG_PCI += pci_fixup.o
obj-CONFIG_BLK_DEV_INITRD += le_ramdisk.o
obj-$(CONFIG_PCI) += pci_fixup.o
obj-$(CONFIG_BLK_DEV_INITRD) += le_ramdisk.o
include $(TOPDIR)/Rules.make
......@@ -6,27 +6,14 @@
# Makefile for the ITE 8172 (qed-4n-s01b) board, board
# specific files.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
all: ite.o
O_TARGET := ite.o
obj-y := init.o
obj-$(CONFIG_PCI) += pci_fixup.o
obj-$(CONFIG_BLK_DEV_INITRD) += le_ramdisk.o
ifdef CONFIG_PCI
obj-y += pci_fixup.o
endif
ifdef CONFIG_BLK_DEV_INITRD
obj-y += le_ramdisk.o
endif
include $(TOPDIR)/Rules.make
dep:
$(CPP) -M *.c > .depend
include $(TOPDIR)/Rules.make
#
# Makefile for the Jazz family specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
EXTRA_AFLAGS := $(CFLAGS)
all: jazz.o
O_TARGET := jazz.o
obj-y := int-handler.o irq.o jazzdma.o reset.o rtc-jazz.o setup.o \
floppy-jazz.o kbd-jazz.o
int-handler.o: int-handler.S
EXTRA_AFLAGS := $(CFLAGS)
include $(TOPDIR)/Rules.make
#
# Makefile for the Linux/MIPS kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# EXTRA_AFLAGS = -mips3 -mcpu=r4000 # not used?
all: kernel.o head.o init_task.o
O_TARGET := kernel.o
EXTRA_TARGETS := head.o init_task.o
obj-y += branch.o process.o signal.o entry.o \
traps.o ptrace.o vm86.o ioport.o reset.o \
......@@ -54,7 +49,4 @@ obj-$(CONFIG_NEW_PCI) += pci.o
obj-$(CONFIG_PCI_AUTO) += pci_auto.o
endif
entry.o: entry.S
head.o: head.S
include $(TOPDIR)/Rules.make
......@@ -22,13 +22,6 @@
# Makefile for the MIPS Atlas specific kernel interface routines
# under Linux.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
all: atlas.o
O_TARGET := atlas.o
......
#
# Makefile for the Philips Nino specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
O_TARGET := nino.o
all: nino.o
obj-y := int-handler.o setup.o irq.o time.o reset.o rtc.o prom.o power.o
int-handler.o: int-handler.S
obj-$(CONFIG_REMOTE_DEBUG) += kgdb.o
obj-$(CONFIG_BLK_DEV_INITRD) += ramdisk.o
include $(TOPDIR)/Rules.make
ramdisk.o:
$(MAKE) -C ramdisk
mv ramdisk/ramdisk.o ramdisk.o
......@@ -25,4 +19,3 @@ ramdisk.o:
clean:
rm -f *.o
include $(TOPDIR)/Rules.make
......@@ -2,21 +2,12 @@
# Makefile for the SGI specific kernel interface routines
# under Linux.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
EXTRA_AFLAGS := $(CFLAGS)
O_TARGET := ip22-kern.o
all: ip22-kern.o indyIRQ.o
obj-y += indy_mc.o indy_sc.o indy_hpc.o indy_int.o indy_rtc.o system.o \
indyIRQ.o reset.o setup.o time.o
indyIRQ.o: indyIRQ.S
EXTRA_AFLAGS := $(CFLAGS)
include $(TOPDIR)/Rules.make
#
# Makefile for the SNI specific part of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
EXTRA_AFLAGS := $(CFLAGS)
all: sni.o int-handler.o
O_TARGET := sni.o
obj-y := int-handler.o io.o irq.o pci.o pcimt_scache.o reset.o setup.o
int-handler.o: int-handler.S
EXTRA_AFLAGS := $(CFLAGS)
include $(TOPDIR)/Rules.make
#
# Makefile for the Linux/MIPS kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
EXTRA_AFLAGS := $(CFLAGS)
all: kernel.o head.o init_task.o
O_TARGET := kernel.o
EXTRA_TARGETS := head.o init_task.o
export-objs = mips64_ksyms.o
export-objs := mips64_ksyms.o
obj-y := branch.o entry.o proc.o process.o ptrace.o r4k_cache.o r4k_fpu.o \
r4k_genex.o r4k_switch.o r4k_tlb.o r4k_tlb_debug.o r4k_tlb_glue.o \
......@@ -26,5 +19,6 @@ obj-$(CONFIG_SMP) += smp.o
AFLAGS_r4k_genex.o := -P
AFLAGS_r4k_tlb_glue.o := -P
EXTRA_AFLAGS := $(CFLAGS)
include $(TOPDIR)/Rules.make
......@@ -22,13 +22,6 @@
# Makefile for the MIPS Atlas specific kernel interface routines
# under Linux.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
all: atlas.o
O_TARGET := atlas.o
......
......@@ -21,15 +21,6 @@
#
# Makefile for the MIPS boards generic routines under Linux.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
EXTRA_AFLAGS := $(CFLAGS)
all: mipsboards.o
O_TARGET := mipsboards.o
......@@ -37,4 +28,6 @@ obj-y := mipsIRQ.o pci.o reset.o display.o init.o \
memory.o printf.o cmdline.o time.o
obj-$(CONFIG_REMOTE_DEBUG) += gdb_hook.o
EXTRA_AFLAGS := $(CFLAGS)
include $(TOPDIR)/Rules.make
......@@ -22,13 +22,6 @@
# Makefile for the MIPS Malta specific kernel interface routines
# under Linux.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
all: malta.o
O_TARGET := malta.o
......
......@@ -2,23 +2,15 @@
# Makefile for the SGI specific kernel interface routines
# under Linux.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
EXTRA_AFLAGS := $(CFLAGS)
O_TARGET := ip32-kern.a
all: ip32-kern.a ip32-irq-glue.o
EXTRA_TARGETS := ip32-irq-glue.o
obj-y += ip32-irq.o ip32-rtc.o ip32-setup.o ip32-irq-glue.o \
ip32-berr.o ip32-timer.o crime.o
ifdef CONFIG_PCI
obj-y += ip32-pci.o ip32-pci-dma.o
endif
obj-$(CONFIG_PCI) += ip32-pci.o ip32-pci-dma.o
EXTRA_AFLAGS := $(CFLAGS)
include $(TOPDIR)/Rules.make
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
all: hpux.o
O_TARGET = hpux.o
O_OBJS = entry_hpux.o gate.o wrappers.o fs.o ioctl.o sys_hpux.o
O_TARGET := hpux.o
obj-y := entry_hpux.o gate.o wrappers.o fs.o ioctl.o sys_hpux.o
.o.S: $(CC) -D__ASSEMBLY__ $(AFLAGS) -traditional -c $*.S -o $*.o
EXTRA_AFLAGS := -traditional
include $(TOPDIR)/Rules.make
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
all: kernel.o init_task.o pdc_cons.o process.o head.o
O_TARGET = kernel.o
O_TARGET := kernel.o
EXTRA_TARGETS := head.o init_task.o process.o pdc_cons.o
# Object file lists.
obj-y += cache.o setup.o traps.o time.o irq.o \
obj-y := cache.o setup.o traps.o time.o irq.o \
syscall.o entry.o sys_parisc.o pdc.o ptrace.o hardware.o \
inventory.o drivers.o semaphore.o pa7300lc.o pci-dma.o \
signal.o hpmc.o \
......@@ -20,7 +15,6 @@ obj-y += cache.o setup.o traps.o time.o irq.o \
export-objs := parisc_ksyms.o
obj-$(CONFIG_PCI) += pci.o
obj-$(CONFIG_VT) += keyboard.o
obj-$(CONFIG_PCI_LBA) += lba_pci.o
......
#
# Makefile for Linux arch/ppc/iSeries source directory
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
O_TARGET := iSeries.o
export-objs := iSeries_ksyms.o
......@@ -13,7 +8,7 @@ obj-y += LparData.o ItLpQueue.o HvLpEvent.o HvCall.o mf.o iSeries_proc.o mf_pr
obj-$(CONFIG_PCI) += XmPciLpEvent.o iSeries_FlightRecorder.o iSeries_IoMmTable.o iSeries_VpdInfo.o iSeries_fixup.o iSeries_irq.o iSeries_pci.o iSeries_pci_proc.o iSeries_reset_device.o
all: iSeries.o
include $(TOPDIR)/Rules.make
LparData.c:: ReleaseData.h
......@@ -23,4 +18,3 @@ ReleaseData.h: $(TOPDIR)/Makefile
clean:
rm -f ReleaseData.h
include $(TOPDIR)/Rules.make
......@@ -3,11 +3,6 @@
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
ifdef CONFIG_PPC64BRIDGE
EXTRA_AFLAGS := -Wa,-mppc64bridge
......@@ -25,9 +20,8 @@ HEAD-$(CONFIG_40x) := head_4xx.o
HEAD-$(CONFIG_8xx) := head_8xx.o
HEAD-$(CONFIG_PPC_ISERIES) := iSeries_head.o
all: $(HEAD-y) kernel.o
O_TARGET := kernel.o
EXTRA_TARGETS := $(HEAD-y)
export-objs := ppc_ksyms.o time.o ppc405_dma.o
......
......@@ -3,11 +3,6 @@
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
ifdef CONFIG_PPC64BRIDGE
EXTRA_AFLAGS := -Wa,-mppc64bridge
......@@ -19,8 +14,6 @@ endif
# Extra CFLAGS so we don't have to do relative includes
CFLAGS_pmac_setup.o += -I$(TOPDIR)/arch/$(ARCH)/mm
all: platform.o
O_TARGET := platform.o
export-objs := prep_setup.o
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
EXTRA_CFLAGS = -mno-minimal-toc
KHEAD := head.o
all: $(KHEAD) kernel.o
O_TARGET := kernel.o
EXTRA_TARGETS := $(KHEAD)
export-objs := ppc_ksyms.o setup.o
......
......@@ -32,7 +32,7 @@ HEAD := arch/s390/kernel/head.o arch/s390/kernel/init_task.o
SUBDIRS := $(SUBDIRS) arch/s390/mm arch/s390/kernel arch/s390/lib \
drivers/s390 arch/s390/math-emu
CORE_FILES := arch/s390/mm/mm.o arch/s390/kernel/kernel.o $(CORE_FILES)
DRIVERS := $(DRIVERS) drivers/s390/io.o
DRIVERS := $(DRIVERS) drivers/s390/built-in.o
LIBS := $(TOPDIR)/arch/s390/lib/lib.a $(LIBS) $(TOPDIR)/arch/s390/lib/lib.a
ifeq ($(CONFIG_MATHEMU),y)
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
all: kernel.o head.o init_task.o
O_TARGET := kernel.o
EXTRA_AFLAGS := -traditional
EXTRA_TARGETS := head.o init_task.o
export-objs := debug.o ebcdic.o irq.o s390_ext.o smp.o s390_ksyms.o
obj-y := entry.o bitmap.o traps.o time.o process.o irq.o \
......@@ -26,5 +18,7 @@ obj-$(CONFIG_SMP) += smp.o
#
obj-$(CONFIG_REMOTE_DEBUG) += gdb-stub.o #gdb-low.o
EXTRA_AFLAGS := -traditional
include $(TOPDIR)/Rules.make
# s390/Makefile
# s390x/Makefile
#
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies. Remember to do have actions
......@@ -33,7 +33,7 @@ HEAD := arch/s390x/kernel/head.o arch/s390x/kernel/init_task.o
SUBDIRS := $(SUBDIRS) arch/s390x/mm arch/s390x/kernel arch/s390x/lib \
drivers/s390
CORE_FILES := arch/s390x/mm/mm.o arch/s390x/kernel/kernel.o $(CORE_FILES)
DRIVERS := $(DRIVERS) drivers/s390/io.o
DRIVERS := $(DRIVERS) drivers/s390/built-in.o
LIBS := $(TOPDIR)/arch/s390x/lib/lib.a $(LIBS) $(TOPDIR)/arch/s390x/lib/lib.a
all: image listing
......
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
all: kernel.o head.o init_task.o
O_TARGET := kernel.o
EXTRA_AFLAGS := -traditional
EXTRA_TARGETS := head.o init_task.o
export-objs := debug.o ebcdic.o irq.o s390_ext.o smp.o s390_ksyms.o \
exec32.o
......@@ -31,9 +23,12 @@ obj-$(CONFIG_REMOTE_DEBUG) += gdb-stub.o #gdb-low.o
obj-$(CONFIG_S390_SUPPORT) += linux32.o signal32.o ioctl32.o wrapper32.o exec32.o
obj-$(CONFIG_BINFMT_ELF32) += binfmt_elf32.o
EXTRA_AFLAGS := -traditional
include $(TOPDIR)/Rules.make
#
# This is just to get the dependencies...
#
binfmt_elf32.o: $(TOPDIR)/fs/binfmt_elf.c
include $(TOPDIR)/Rules.make
......@@ -897,97 +897,6 @@ asmlinkage long sys32_fcntl64(unsigned int fd, unsigned int cmd, unsigned long a
return sys32_fcntl(fd, cmd, arg);
}
extern asmlinkage int sys_quotactl(int cmd, const char *special, int id, caddr_t addr);
#ifdef CONFIG_QIFACE_COMPAT
#ifdef CONFIG_QIFACE_V1
struct user_dqblk32 {
__u32 dqb_bhardlimit;
__u32 dqb_bsoftlimit;
__u32 dqb_curblocks;
__u32 dqb_ihardlimit;
__u32 dqb_isoftlimit;
__u32 dqb_curinodes;
__kernel_time_t32 dqb_btime;
__kernel_time_t32 dqb_itime;
};
typedef struct v1c_mem_dqblk comp_dqblk_t;
#define Q_COMP_GETQUOTA Q_V1_GETQUOTA
#define Q_COMP_SETQUOTA Q_V1_SETQUOTA
#define Q_COMP_SETQLIM Q_V1_SETQLIM
#define Q_COMP_SETUSE Q_V1_SETUSE
#else
struct user_dqblk32 {
__u32 dqb_ihardlimit;
__u32 dqb_isoftlimit;
__u32 dqb_curinodes;
__u32 dqb_bhardlimit;
__u32 dqb_bsoftlimit;
__u64 dqb_curspace;
__kernel_time_t32 dqb_btime;
__kernel_time_t32 dqb_itime;
};
typedef struct v2c_mem_dqblk comp_dqblk_t;
#define Q_COMP_GETQUOTA Q_V2_GETQUOTA
#define Q_COMP_SETQUOTA Q_V2_SETQUOTA
#define Q_COMP_SETQLIM Q_V2_SETQLIM
#define Q_COMP_SETUSE Q_V2_SETUSE
#endif
asmlinkage int sys32_quotactl(int cmd, const char *special, int id, caddr_t addr)
{
int cmds = cmd >> SUBCMDSHIFT;
int err;
comp_dqblk_t d;
mm_segment_t old_fs;
char *spec;
switch (cmds) {
case Q_COMP_GETQUOTA:
break;
case Q_COMP_SETQUOTA:
case Q_COMP_SETUSE:
case Q_COMP_SETQLIM:
if (copy_from_user(&d, (struct user_dqblk32 *)addr,
sizeof (struct user_dqblk32)))
return -EFAULT;
d.dqb_itime = ((struct user_dqblk32 *)&d)->dqb_itime;
d.dqb_btime = ((struct user_dqblk32 *)&d)->dqb_btime;
break;
default:
return sys_quotactl(cmd, special, id, (__kernel_caddr_t)addr);
}
spec = getname (special);
err = PTR_ERR(spec);
if (IS_ERR(spec)) return err;
old_fs = get_fs();
set_fs (KERNEL_DS);
err = sys_quotactl(cmd, (const char *)spec, id, (__kernel_caddr_t)&d);
set_fs (old_fs);
putname (spec);
if (err)
return err;
if (cmds == Q_COMP_GETQUOTA) {
__kernel_time_t b = d.dqb_btime, i = d.dqb_itime;
((struct user_dqblk32 *)&d)->dqb_itime = i;
((struct user_dqblk32 *)&d)->dqb_btime = b;
if (copy_to_user ((struct user_dqblk32 *)addr, &d,
sizeof (struct user_dqblk32)))
return -EFAULT;
}
return 0;
}
#else
/* No conversion needed for new interface */
asmlinkage int sys32_quotactl(int cmd, const char *special, int id, caddr_t addr)
{
return sys_quotactl(cmd, special, id, addr);
}
#endif
static inline int put_statfs (struct statfs32 *ubuf, struct statfs *kbuf)
{
int err;
......
......@@ -586,7 +586,7 @@ sys32_quotactl_wrapper:
llgtr %r3,%r3 # const char *
lgfr %r4,%r4 # int
llgtr %r5,%r5 # caddr_t
jg sys32_quotactl # branch to system call
jg sys_quotactl # branch to system call
.globl sys32_getpgid_wrapper
sys32_getpgid_wrapper:
......
#
# Makefile for the Linux/SuperH kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
all: kernel.o head.o init_task.o
clean:
O_TARGET := kernel.o
EXTRA_TARGETS := head.o init_task.o
export-objs := io.o io_generic.o io_hd64461.o setup_hd64461.o sh_ksyms.o
......
#
# Makefile for STMicroelectronics board specific parts of the kernel
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
all: stboards.o
O_TARGET := stboards.o
obj-y := irq.o setup.o mach.o led.o
clean:
obj-y := irq.o setup.o mach.o led.o
include $(TOPDIR)/Rules.make
# $Id: Makefile,v 1.62 2000/12/15 00:41:17 davem Exp $
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
SH = $(CONFIG_SHELL)
all: kernel.o head.o init_task.o
O_TARGET := kernel.o
EXTRA_TARGETS := head.o init_task.o
EXTRA_AFLAGS := -ansi
......@@ -34,8 +28,7 @@ ifdef CONFIG_SUNOS_EMUL
obj-y += sys_sunos.o sunos_ioctl.o
endif
head.o: head.S
$(CC) $(AFLAGS) -ansi -c $*.S -o $*.o
include $(TOPDIR)/Rules.make
check_asm: FORCE
@if [ ! -r $(HPATH)/asm/asm_offsets.h ] ; then \
......@@ -126,6 +119,3 @@ check_asm: FORCE
else \
mv -f asm_offsets.h $(HPATH)/asm/asm_offsets.h; \
fi
include $(TOPDIR)/Rules.make
......@@ -6,9 +6,8 @@ SH = $(CONFIG_SHELL)
EXTRA_AFLAGS := -ansi
all: kernel.o head.o init_task.o
O_TARGET := kernel.o
EXTRA_TARGETS := head.o init_task.o
export-objs := sparc64_ksyms.o
obj-y := process.o setup.o cpu.o idprom.o \
......@@ -32,10 +31,6 @@ else
endif
endif
head.o: head.S ttable.S itlb_base.S dtlb_base.S dtlb_backend.S dtlb_prot.S \
etrap.S rtrap.S winfixup.S entry.S
$(CC) $(AFLAGS) -ansi -c $*.S -o $*.o
#
# This is just to get the dependencies...
#
......@@ -48,3 +43,6 @@ else
endif
include $(TOPDIR)/Rules.make
head.o: head.S ttable.S itlb_base.S dtlb_base.S dtlb_backend.S dtlb_prot.S \
etrap.S rtrap.S winfixup.S entry.S
......@@ -889,97 +889,6 @@ asmlinkage long sys32_fcntl64(unsigned int fd, unsigned int cmd, unsigned long a
return sys32_fcntl(fd, cmd, arg);
}
extern asmlinkage int sys_quotactl(int cmd, const char *special, int id, caddr_t addr);
#ifdef CONFIG_QIFACE_COMPAT
#ifdef CONFIG_QIFACE_V1
struct user_dqblk32 {
__u32 dqb_bhardlimit;
__u32 dqb_bsoftlimit;
__u32 dqb_curblocks;
__u32 dqb_ihardlimit;
__u32 dqb_isoftlimit;
__u32 dqb_curinodes;
__kernel_time_t32 dqb_btime;
__kernel_time_t32 dqb_itime;
};
typedef struct v1c_mem_dqblk comp_dqblk_t;
#define Q_COMP_GETQUOTA Q_V1_GETQUOTA
#define Q_COMP_SETQUOTA Q_V1_SETQUOTA
#define Q_COMP_SETQLIM Q_V1_SETQLIM
#define Q_COMP_SETUSE Q_V1_SETUSE
#else
struct user_dqblk32 {
__u32 dqb_ihardlimit;
__u32 dqb_isoftlimit;
__u32 dqb_curinodes;
__u32 dqb_bhardlimit;
__u32 dqb_bsoftlimit;
__u64 dqb_curspace;
__kernel_time_t32 dqb_btime;
__kernel_time_t32 dqb_itime;
};
typedef struct v2c_mem_dqblk comp_dqblk_t;
#define Q_COMP_GETQUOTA Q_V2_GETQUOTA
#define Q_COMP_SETQUOTA Q_V2_SETQUOTA
#define Q_COMP_SETQLIM Q_V2_SETQLIM
#define Q_COMP_SETUSE Q_V2_SETUSE
#endif
asmlinkage int sys32_quotactl(int cmd, const char *special, int id, caddr_t addr)
{
int cmds = cmd >> SUBCMDSHIFT;
int err;
comp_dqblk_t d;
mm_segment_t old_fs;
char *spec;
switch (cmds) {
case Q_COMP_GETQUOTA:
break;
case Q_COMP_SETQUOTA:
case Q_COMP_SETUSE:
case Q_COMP_SETQLIM:
if (copy_from_user(&d, (struct user_dqblk32 *)addr,
sizeof (struct user_dqblk32)))
return -EFAULT;
d.dqb_itime = ((struct user_dqblk32 *)&d)->dqb_itime;
d.dqb_btime = ((struct user_dqblk32 *)&d)->dqb_btime;
break;
default:
return sys_quotactl(cmd, special, id, (__kernel_caddr_t)addr);
}
spec = getname (special);
err = PTR_ERR(spec);
if (IS_ERR(spec)) return err;
old_fs = get_fs();
set_fs (KERNEL_DS);
err = sys_quotactl(cmd, (const char *)spec, id, (__kernel_caddr_t)&d);
set_fs (old_fs);
putname (spec);
if (err)
return err;
if (cmds == Q_COMP_GETQUOTA) {
__kernel_time_t b = d.dqb_btime, i = d.dqb_itime;
((struct user_dqblk32 *)&d)->dqb_itime = i;
((struct user_dqblk32 *)&d)->dqb_btime = b;
if (copy_to_user ((struct user_dqblk32 *)addr, &d,
sizeof (struct user_dqblk32)))
return -EFAULT;
}
return 0;
}
#else
/* No conversion needed for new interface */
asmlinkage int sys32_quotactl(int cmd, const char *special, int id, caddr_t addr)
{
return sys_quotactl(cmd, special, id, addr);
}
#endif
static inline int put_statfs (struct statfs32 *ubuf, struct statfs *kbuf)
{
int err;
......
......@@ -52,7 +52,7 @@ sys_call_table32:
/*150*/ .word sys_nis_syscall, sys_nis_syscall, sys_nis_syscall, sys_poll, sys_getdents64
.word sys32_fcntl64, sys_nis_syscall, sys32_statfs, sys32_fstatfs, sys_oldumount
/*160*/ .word sys32_sched_setaffinity, sys32_sched_getaffinity, sys_getdomainname, sys_setdomainname, sys_nis_syscall
.word sys32_quotactl, sys_nis_syscall, sys32_mount, sys_ustat, sys_setxattr
.word sys_quotactl, sys_nis_syscall, sys32_mount, sys_ustat, sys_setxattr
/*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys32_getdents
.word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr
/*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys32_sigpending, sys32_query_module
......
......@@ -2,14 +2,11 @@
# Makefile for the ia32 kernel emulation subsystem.
#
export-objs := ia32_ioctl.o
O_TARGET := ia32.o
all: ia32.o
export-objs := ia32_ioctl.o
O_TARGET := ia32.o
obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_ioctl.o ia32_signal.o \
ia32_binfmt.o fpu32.o socket32.o ptrace32.o
clean::
include $(TOPDIR)/Rules.make
......@@ -2,12 +2,8 @@
# Makefile for the linux kernel.
#
EXTRA_AFLAGS := -traditional
all: kernel.o head.o head64.o init_task.o
O_TARGET := kernel.o
EXTRA_TARGETS := head.o head64.o init_task.o
export-objs := mtrr.o msr.o cpuid.o x8664_ksyms.o
......@@ -31,5 +27,7 @@ obj-$(CONFIG_X86_IO_APIC) += io_apic.o mpparse.o
#obj-$(CONFIG_ACPI_SLEEP) += acpi_wakeup.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
EXTRA_AFLAGS := -traditional
include $(TOPDIR)/Rules.make
......@@ -9,43 +9,43 @@
mod-subdirs := dio mtd sbus video macintosh usb input telephony sgi ide \
message scsi md ieee1394 pnp isdn atm \
fc4 i2c acpi bluetooth input/serio \
input/gameport parport hotplug
input/gameport parport hotplug \
base char block misc net media cdrom
subdir-y := base char block net misc media cdrom
subdir-m := $(subdir-y)
subdir-$(CONFIG_PARPORT) += parport
subdir-$(CONFIG_HOTPLUG_PCI) += hotplug
subdir-$(CONFIG_DIO) += dio
subdir-$(CONFIG_PCI) += pci
subdir-$(CONFIG_PCMCIA) += pcmcia
subdir-$(CONFIG_MTD) += mtd
subdir-$(CONFIG_SBUS) += sbus
subdir-$(CONFIG_ZORRO) += zorro
subdir-$(CONFIG_NUBUS) += nubus
subdir-$(CONFIG_TC) += tc
subdir-$(CONFIG_VT) += video
subdir-$(CONFIG_MAC) += macintosh
subdir-$(CONFIG_ALL_PPC) += macintosh
subdir-$(CONFIG_USB) += usb
subdir-$(CONFIG_INPUT) += input
subdir-$(CONFIG_SERIO) += input/serio
subdir-$(CONFIG_GAMEPORT) += input/gameport
subdir-$(CONFIG_PHONE) += telephony
subdir-$(CONFIG_SGI) += sgi
subdir-$(CONFIG_IDE) += ide
subdir-$(CONFIG_SCSI) += scsi
subdir-$(CONFIG_I2O) += message
subdir-$(CONFIG_FUSION) += message
subdir-$(CONFIG_MD) += md
subdir-$(CONFIG_IEEE1394) += ieee1394
subdir-$(CONFIG_PNP) += pnp
subdir-$(CONFIG_ISDN) += isdn
subdir-$(CONFIG_ATM) += atm
subdir-$(CONFIG_FC4) += fc4
subdir-$(CONFIG_I2C) += i2c
subdir-$(CONFIG_ACPI) += acpi
subdir-$(CONFIG_BLUEZ) += bluetooth
obj-$(CONFIG_PCI) += pci/
obj-$(CONFIG_ACPI) += acpi/
obj-$(CONFIG_PARPORT) += parport/
obj-y += base/ char/ block/ misc/ net/ media/
obj-$(CONFIG_NUBUS) += nubus/
obj-$(CONFIG_ATM) += atm/
obj-$(CONFIG_IDE) += ide/
obj-$(CONFIG_FC4) += fc4/
obj-$(CONFIG_SCSI) += scsi/
obj-$(CONFIG_FUSION) += message/
obj-$(CONFIG_IEEE1394) += ieee1394/
obj-y += cdrom/
obj-$(CONFIG_MTD) += mtd/
obj-$(CONFIG_PCMCIA) += pcmcia/
obj-$(CONFIG_DIO) += dio/
obj-$(CONFIG_SBUS) += sbus/
obj-$(CONFIG_ZORRO) += zorro/
obj-$(CONFIG_ALL_PPC) += macintosh/
obj-$(CONFIG_MAC) += macintosh/
obj-$(CONFIG_PNP) += pnp/
obj-$(CONFIG_SGI) += sgi/
obj-$(CONFIG_VT) += video/
obj-$(CONFIG_PARIDE) += block/paride/
obj-$(CONFIG_TC) += tc/
obj-$(CONFIG_USB) += usb/
obj-$(CONFIG_INPUT) += input/
obj-$(CONFIG_GAMEPORT) += input/gameport/
obj-$(CONFIG_SERIO) += input/serio/
obj-$(CONFIG_I2O) += message/
obj-$(CONFIG_I2C) += i2c/
obj-$(CONFIG_PHONE) += telephony/
obj-$(CONFIG_MD) += md/
obj-$(CONFIG_BLUEZ) += bluetooth/
obj-$(CONFIG_HOTPLUG_PCI) += hotplug/
obj-$(CONFIG_ISDN) += isdn/
include $(TOPDIR)/Rules.make
#
# Makefile for the Acorn-specific Linux kernel device drivers.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (not a .c file).
subdir-y := char
subdir-m := $(subdir-y)
# the BLOCK subdir is included from drivers/block now
# the SCSI subdir is included from drivers/scsi now
# the NET subdir is included from drivers/net now
include $(TOPDIR)/Rules.make
......@@ -2,14 +2,6 @@
# Makefile for the Acorn block device drivers.
#
O_TARGET := acorn-block.o
obj-y :=
obj-m :=
obj-n :=
obj- :=
export-objs :=
fd1772_mod-objs := fd1772.o fd1772dma.o
mfmhd_mod-objs := mfmhd.o mfm.o
......
#
# Makefile for the kernel character device drivers.
# Makefile for the acorn character device drivers.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now inherited from the
# parent makes..
#
O_TARGET := acorn-char.o
# Object file lists.
obj-y :=
obj-m :=
obj-n :=
obj- :=
# All the objects that export symbols.
export-objs := mouse_rpc.o
......
......@@ -2,8 +2,6 @@
# Makefile for the Linux ACPI interpreter
#
O_TARGET := acpi.o
export ACPI_CFLAGS
ACPI_CFLAGS := -D_LINUX -I$(CURDIR)/include
......
......@@ -2,8 +2,6 @@
# Makefile for the Linux network (ATM) device drivers.
#
O_TARGET := atm.o
export-objs := uPD98402.o suni.o idt77105.o
obj-y := atmdev_init.o
......
O_TARGET := base.o
# Makefile for the Linux device tree
obj-y := core.o sys.o interface.o fs.o power.o bus.o
obj-y := core.o sys.o interface.o fs.o power.o bus.o \
driver.o
export-objs := core.o fs.o power.o sys.o bus.o
export-objs := core.o fs.o power.o sys.o bus.o driver.o
include $(TOPDIR)/Rules.make
/*
* driver.c - centralized device driver management
*
*/
#include <linux/device.h>
#include <linux/module.h>
#include <linux/errno.h>
#include "base.h"
/**
* driver_make_dir - create a driverfs directory for a driver
* @drv: driver in question
*/
static int driver_make_dir(struct device_driver * drv)
{
drv->dir.name = drv->name;
return device_create_dir(&drv->dir,&drv->bus->driver_dir);
}
/**
* driver_register - register driver with bus
* @drv: driver to register
*
* Add to bus's list of devices
*/
int driver_register(struct device_driver * drv)
{
if (!drv->bus)
return -EINVAL;
pr_debug("Registering driver '%s' with bus '%s'\n",drv->name,drv->bus->name);
get_bus(drv->bus);
atomic_set(&drv->refcount,2);
rwlock_init(&drv->lock);
write_lock(&drv->bus->lock);
list_add(&drv->bus_list,&drv->bus->drivers);
write_unlock(&drv->bus->lock);
driver_make_dir(drv);
put_driver(drv);
return 0;
}
/**
* put_driver - decrement driver's refcount and clean up if necessary
* @drv: driver in question
*/
void put_driver(struct device_driver * drv)
{
if (!atomic_dec_and_lock(&drv->refcount,&device_lock))
return;
spin_unlock(&device_lock);
if (drv->bus) {
pr_debug("Unregistering driver '%s' from bus '%s'\n",drv->name,drv->bus->name);
write_lock(&drv->bus->lock);
list_del_init(&drv->bus_list);
write_unlock(&drv->bus->lock);
driverfs_remove_dir(&drv->dir);
put_bus(drv->bus);
}
if (drv->release)
drv->release(drv);
}
EXPORT_SYMBOL(driver_register);
EXPORT_SYMBOL(put_driver);
......@@ -8,8 +8,6 @@
# In the future, some of these should be built conditionally.
#
O_TARGET := block.o
export-objs := elevator.o ll_rw_blk.o blkpg.o loop.o DAC960.o genhd.o block_ioctl.o
obj-y := elevator.o ll_rw_blk.o blkpg.o genhd.o block_ioctl.o
......@@ -33,6 +31,4 @@ obj-$(CONFIG_BLK_DEV_DAC960) += DAC960.o
obj-$(CONFIG_BLK_DEV_UMEM) += umem.o
obj-$(CONFIG_BLK_DEV_NBD) += nbd.o
subdir-$(CONFIG_PARIDE) += paride
include $(TOPDIR)/Rules.make
......@@ -50,13 +50,7 @@ extern int mac_floppy_init(void);
static kmem_cache_t *request_cachep;
static struct list_head blk_plug_list;
static spinlock_t blk_plug_lock = SPIN_LOCK_UNLOCKED;
/*
* The "disk" task queue is used to start the actual requests
* after a plug
*/
DECLARE_TASK_QUEUE(tq_disk);
static spinlock_t blk_plug_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
/* blk_dev_struct is:
* request_queue
......@@ -794,12 +788,11 @@ void blk_plug_device(request_queue_t *q)
if (!elv_queue_empty(q))
return;
if (test_and_set_bit(QUEUE_FLAG_PLUGGED, &q->queue_flags))
return;
if (!test_and_set_bit(QUEUE_FLAG_PLUGGED, &q->queue_flags)) {
spin_lock(&blk_plug_lock);
list_add_tail(&q->plug.list, &blk_plug_list);
list_add_tail(&q->plug_list, &blk_plug_list);
spin_unlock(&blk_plug_lock);
}
}
/*
......@@ -813,10 +806,8 @@ static inline void __generic_unplug_device(request_queue_t *q)
if (!__test_and_clear_bit(QUEUE_FLAG_PLUGGED, &q->queue_flags))
return;
if (test_bit(QUEUE_FLAG_STOPPED, &q->queue_flags)) {
printk("queue was stopped\n");
if (test_bit(QUEUE_FLAG_STOPPED, &q->queue_flags))
return;
}
/*
* was plugged, fire request_fn if queue has stuff to do
......@@ -834,22 +825,12 @@ static inline void __generic_unplug_device(request_queue_t *q)
* the device have at them. If a queue is plugged, the I/O scheduler
* is still adding and merging requests on the queue. Once the queue
* gets unplugged (either by manually calling this function, or by
* running the tq_disk task queue), the request_fn defined for the
* calling blk_run_queues()), the request_fn defined for the
* queue is invoked and transfers started.
**/
void generic_unplug_device(void *data)
{
request_queue_t *q = data;
tasklet_schedule(&q->plug.task);
}
/*
* the plug tasklet
*/
static void blk_task_run(unsigned long data)
{
request_queue_t *q = (request_queue_t *) data;
unsigned long flags;
spin_lock_irqsave(q->queue_lock, flags);
......@@ -858,23 +839,26 @@ static void blk_task_run(unsigned long data)
}
/*
* clear top flag and schedule tasklet for execution
* clear stop flag and run queue
*/
void blk_start_queue(request_queue_t *q)
{
if (test_and_clear_bit(QUEUE_FLAG_STOPPED, &q->queue_flags))
tasklet_enable(&q->plug.task);
if (test_and_clear_bit(QUEUE_FLAG_STOPPED, &q->queue_flags)) {
unsigned long flags;
tasklet_schedule(&q->plug.task);
spin_lock_irqsave(q->queue_lock, flags);
if (!elv_queue_empty(q))
q->request_fn(q);
spin_unlock_irqrestore(q->queue_lock, flags);
}
}
/*
* set stop bit and disable any pending tasklet
* set stop bit, queue won't be run until blk_start_queue() is called
*/
void blk_stop_queue(request_queue_t *q)
{
if (!test_and_set_bit(QUEUE_FLAG_STOPPED, &q->queue_flags))
tasklet_disable(&q->plug.task);
set_bit(QUEUE_FLAG_STOPPED, &q->queue_flags);
}
/*
......@@ -882,22 +866,44 @@ void blk_stop_queue(request_queue_t *q)
*/
void blk_run_queues(void)
{
struct list_head *tmp, *n;
struct list_head *n, *tmp, local_plug_list;
unsigned long flags;
INIT_LIST_HEAD(&local_plug_list);
/*
* we could splice to the stack prior to running
* this will happen fairly often
*/
spin_lock_irqsave(&blk_plug_lock, flags);
list_for_each_safe(tmp, n, &blk_plug_list) {
request_queue_t *q = list_entry(tmp, request_queue_t,plug.list);
if (list_empty(&blk_plug_list)) {
spin_unlock_irqrestore(&blk_plug_lock, flags);
return;
}
list_splice(&blk_plug_list, &local_plug_list);
INIT_LIST_HEAD(&blk_plug_list);
spin_unlock_irqrestore(&blk_plug_lock, flags);
/*
* local_plug_list is now a private copy we can traverse lockless
*/
list_for_each_safe(n, tmp, &local_plug_list) {
request_queue_t *q = list_entry(n, request_queue_t, plug_list);
if (!test_bit(QUEUE_FLAG_STOPPED, &q->queue_flags)) {
list_del(&q->plug.list);
tasklet_schedule(&q->plug.task);
list_del(&q->plug_list);
generic_unplug_device(q);
}
}
/*
* add any remaining queue back to plug list
*/
if (!list_empty(&local_plug_list)) {
spin_lock_irqsave(&blk_plug_lock, flags);
list_splice(&local_plug_list, &blk_plug_list);
spin_unlock_irqrestore(&blk_plug_lock, flags);
}
}
static int __blk_cleanup_queue(struct request_list *list)
......@@ -1050,8 +1056,7 @@ int blk_init_queue(request_queue_t *q, request_fn_proc *rfn, spinlock_t *lock)
blk_queue_max_hw_segments(q, MAX_HW_SEGMENTS);
blk_queue_max_phys_segments(q, MAX_PHYS_SEGMENTS);
INIT_LIST_HEAD(&q->plug.list);
tasklet_init(&q->plug.task, blk_task_run, (unsigned long) q);
INIT_LIST_HEAD(&q->plug_list);
return 0;
}
......
......@@ -2,21 +2,14 @@
# Makefile for Bluetooth HCI device drivers.
#
O_TARGET := bluetooth.o
list-multi := hci_uart.o
obj-$(CONFIG_BLUEZ_HCIUSB) += hci_usb.o
obj-$(CONFIG_BLUEZ_HCIVHCI) += hci_vhci.o
obj-$(CONFIG_BLUEZ_HCIUART) += hci_uart.o
uart-y := hci_ldisc.o
uart-$(CONFIG_BLUEZ_HCIUART_H4) += hci_h4.o
obj-$(CONFIG_BLUEZ_HCIDTL1) += dtl1_cs.o
obj-$(CONFIG_BLUEZ_HCIBLUECARD) += bluecard_cs.o
include $(TOPDIR)/Rules.make
hci_uart-y := hci_ldisc.o
hci_uart-$(CONFIG_BLUEZ_HCIUART_H4) += hci_h4.o
hci_uart-objs := $(hci_uart-y)
hci_uart.o: $(uart-y)
$(LD) -r -o $@ $(uart-y)
include $(TOPDIR)/Rules.make
......@@ -3,9 +3,6 @@
# 30 Jan 1998, Michael Elizabeth Chastain, <mailto:mec@shout.net>
# Rewritten to use lists instead of if-statements.
O_TARGET := driver.o
# All of the (potential) objects that export symbols.
# This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'.
......
......@@ -7,8 +7,6 @@
#
FONTMAPFILE = cp437.uni
O_TARGET := char.o
obj-y += mem.o tty_io.o n_tty.o tty_ioctl.o raw.o pty.o misc.o random.o
# All of the (potential) objects that export symbols.
......
......@@ -2,8 +2,6 @@
# Makefile for the Linux kernel pci hotplug controller drivers.
#
O_TARGET := vmlinux-obj.o
export-objs := pci_hotplug_core.o pci_hotplug_util.o
obj-$(CONFIG_HOTPLUG_PCI) += pci_hotplug.o
......
......@@ -2,8 +2,6 @@
# Makefile for the kernel i2c bus driver.
#
O_TARGET := i2c.o
export-objs := i2c-core.o i2c-algo-bit.o i2c-algo-pcf.o \
i2c-algo-ite.o i2c-proc.o
......
......@@ -8,15 +8,9 @@
# In the future, some of these should be built conditionally.
#
O_TARGET := idedriver.o
export-objs := ide-taskfile.o main.o ide.o ide-features.o ide-probe.o quirks.o pcidma.o tcq.o \
export-objs := ide-taskfile.o main.o ide.o probe.o quirks.o pcidma.o tcq.o \
atapi.o ataraid.o
obj-y :=
obj-m :=
ide-obj-y :=
obj-$(CONFIG_BLK_DEV_HD) += hd.o
obj-$(CONFIG_BLK_DEV_IDE) += ide-mod.o
obj-$(CONFIG_BLK_DEV_IDECS) += ide-cs.o
......@@ -74,7 +68,7 @@ obj-$(CONFIG_BLK_DEV_ATARAID) += ataraid.o
obj-$(CONFIG_BLK_DEV_ATARAID_PDC) += pdcraid.o
obj-$(CONFIG_BLK_DEV_ATARAID_HPT) += hptraid.o
ide-mod-objs := ide-taskfile.o main.o ide.o ide-probe.o ide-geometry.o ide-features.o \
ide-mod-objs := ide-taskfile.o main.o ide.o probe.o \
ioctl.o atapi.o ata-timing.o$(ide-obj-y)
include $(TOPDIR)/Rules.make
......@@ -685,7 +685,17 @@ static void __init ali15x3_init_dma(struct ata_channel *ch, unsigned long dmabas
/* module data table */
static struct ata_pci_device chipset __initdata = {
static struct ata_pci_device chipsets[] __initdata = {
{
vendor: PCI_VENDOR_ID_AL,
device: PCI_DEVICE_ID_AL_M5219,
/* FIXME: Perhaps we should use the same init routines
* as below here. */
enablebits: { {0x00,0x00,0x00}, {0x00,0x00,0x00} },
bootable: ON_BOARD,
flags: ATA_F_SIMPLEX
},
{
vendor: PCI_VENDOR_ID_AL,
device: PCI_DEVICE_ID_AL_M5229,
init_chipset: ali15x3_init_chipset,
......@@ -694,11 +704,16 @@ static struct ata_pci_device chipset __initdata = {
init_dma: ali15x3_init_dma,
enablebits: { {0x00,0x00,0x00}, {0x00,0x00,0x00} },
bootable: ON_BOARD
}
};
int __init init_ali15x3(void)
{
ata_register_chipset(&chipset);
int i;
for (i = 0; i < ARRAY_SIZE(chipsets); ++i) {
ata_register_chipset(&chipsets[i]);
}
return 0;
}
......@@ -443,7 +443,8 @@ static struct ata_pci_device chipsets[] __initdata = {
init_channel: amd74xx_init_channel,
init_dma: amd74xx_init_dma,
enablebits: {{0x40,0x01,0x01}, {0x40,0x02,0x02}},
bootable: ON_BOARD
bootable: ON_BOARD,
flags: ATA_F_SIMPLEX
},
{
vendor: PCI_VENDOR_ID_AMD,
......
......@@ -82,4 +82,5 @@ extern void ata_timing_merge(struct ata_timing *a, struct ata_timing *b,
extern struct ata_timing* ata_timing_data(short speed);
extern int ata_timing_compute(struct ata_device *drive,
short speed, struct ata_timing *t, int T, int UT);
#endif
......@@ -1099,6 +1099,7 @@ static struct ata_pci_device chipsets[] __initdata = {
init_chipset: cmd64x_init_chipset,
init_channel: cmd64x_init_channel,
bootable: ON_BOARD,
flags: ATA_F_SIMPLEX,
},
{
vendor: PCI_VENDOR_ID_CMD,
......
......@@ -76,8 +76,6 @@ static int cs5530_get_info (char *buffer, char **addr, off_t offset, int count)
byte cs5530_proc = 0;
extern char *ide_xfer_verbose (byte xfer_rate);
/*
* Set a new transfer mode at the drive
*/
......@@ -85,7 +83,7 @@ int cs5530_set_xfer_mode(struct ata_device *drive, byte mode)
{
int error = 0;
printk("%s: cs5530_set_xfer_mode(%s)\n", drive->name, ide_xfer_verbose(mode));
printk("%s: cs5530_set_xfer_mode(%02x)\n", drive->name, mode);
error = ide_config_drive_speed(drive, mode);
return error;
......@@ -376,7 +374,7 @@ static struct ata_pci_device chipset __initdata = {
init_chipset: pci_init_cs5530,
init_channel: ide_init_cs5530,
bootable: ON_BOARD,
flags: ATA_F_DMA
flags: ATA_F_DMA | ATA_F_FDMA
};
int __init init_cs5530(void)
......
......@@ -94,8 +94,6 @@ static int hpt34x_get_info (char *buffer, char **addr, off_t offset, int count)
byte hpt34x_proc = 0;
extern char *ide_xfer_verbose(byte xfer_rate);
static void hpt34x_clear_chipset(struct ata_device *drive)
{
unsigned int reg1 = 0, tmp1 = 0;
......@@ -132,12 +130,12 @@ static int hpt34x_tune_chipset(struct ata_device *drive, byte speed)
pci_write_config_dword(drive->channel->pci_dev, 0x48, tmp2);
#if HPT343_DEBUG_DRIVE_INFO
printk("%s: %s drive%d (0x%04x 0x%04x) (0x%04x 0x%04x)" \
printk("%s: %02x drive%d (0x%04x 0x%04x) (0x%04x 0x%04x)" \
" (0x%02x 0x%02x) 0x%04x\n",
drive->name, ide_xfer_verbose(speed),
drive->name, speed,
drive->dn, reg1, tmp1, reg2, tmp2,
hi_speed, lo_speed, err);
#endif /* HPT343_DEBUG_DRIVE_INFO */
#endif
if (!drive->init_speed)
drive->init_speed = speed;
......
......@@ -27,8 +27,6 @@
#include <asm/io.h>
#include <asm/page.h>
extern char *ide_xfer_verbose (byte xfer_rate);
/*
* Maximum number of interfaces per card
*/
......@@ -372,8 +370,8 @@ icside_config_if(struct ata_device *drive, int xfer_mode)
else
drive->drive_data = 480;
printk("%s: %s selected (peak %dMB/s)\n", drive->name,
ide_xfer_verbose(xfer_mode), 2000 / drive->drive_data);
printk("%s: %02x selected (peak %dMB/s)\n", drive->name,
xfer_mode, 2000 / drive->drive_data);
drive->current_speed = xfer_mode;
......
......@@ -871,9 +871,10 @@ int cdrom_read_check_ireason(struct ata_device *drive, struct request *rq, int l
/* Throw some data at the drive so it doesn't hang
and quit this request. */
while (len > 0) {
int dum = 0;
atapi_write(drive, &dum, sizeof (dum));
len -= sizeof (dum);
u8 dummy[4];
atapi_write(drive, dummy, sizeof(dummy));
len -= sizeof(dummy);
}
} else if (ireason == 1) {
/* Some drives (ASUS) seem to tell us that status
......@@ -1293,10 +1294,10 @@ static ide_startstop_t cdrom_pc_intr(struct ata_device *drive, struct request *r
/* If we haven't moved enough data to satisfy the drive,
add some padding. */
while (len > thislen) {
int dum = 0;
u8 dummy[4];
atapi_write(drive, &dum, sizeof (dum));
len -= sizeof (dum);
atapi_write(drive, dummy, sizeof(dummy));
len -= sizeof(dummy);
}
/* Keep count of how much data we've moved. */
......@@ -1312,9 +1313,10 @@ static ide_startstop_t cdrom_pc_intr(struct ata_device *drive, struct request *r
/* If we haven't moved enough data to satisfy the drive,
add some padding. */
while (len > thislen) {
int dum = 0;
atapi_read(drive, &dum, sizeof (dum));
len -= sizeof (dum);
u8 dummy[4];
atapi_read(drive, dummy, sizeof(dummy));
len -= sizeof(dummy);
}
/* Keep count of how much data we've moved. */
......@@ -1456,9 +1458,9 @@ static inline int cdrom_write_check_ireason(struct ata_device *drive, struct req
/* Throw some data at the drive so it doesn't hang
and quit this request. */
while (len > 0) {
int dum = 0;
atapi_write(drive, &dum, sizeof(dum));
len -= sizeof(dum);
u8 dummy[4];
atapi_write(drive, dummy, sizeof(dummy));
len -= sizeof(dummy);
}
} else {
/* Drive wants a command packet, or invalid ireason... */
......
This diff is collapsed.
/*
* Sun Feb 24 23:13:03 CET 2002: Patch by Andries Brouwer to remove the
* confused CMOS probe applied. This is solving more problems than it may
* (unexpectedly) introduce.
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/ide.h>
#include <linux/mc146818rtc.h>
#include <asm/io.h>
#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
extern struct ata_device * get_info_ptr(kdev_t);
/*
* If heads is nonzero: find a translation with this many heads and S=63.
* Otherwise: find out how OnTrack Disk Manager would translate the disk.
*/
static void
ontrack(struct ata_device *drive, int heads, unsigned int *c, int *h, int *s)
{
static const u8 dm_head_vals[] = {4, 8, 16, 32, 64, 128, 255, 0};
const u8 *headp = dm_head_vals;
unsigned long total;
/*
* The specs say: take geometry as obtained from Identify, compute
* total capacity C*H*S from that, and truncate to 1024*255*63. Now
* take S=63, H the first in the sequence 4, 8, 16, 32, 64, 128, 255
* such that 63*H*1024 >= total. [Please tell aeb@cwi.nl in case this
* computes a geometry different from what OnTrack uses.]
*/
total = ata_capacity(drive);
*s = 63;
if (heads) {
*h = heads;
*c = total / (63 * heads);
return;
}
while (63 * headp[0] * 1024 < total && headp[1] != 0)
headp++;
*h = headp[0];
*c = total / (63 * headp[0]);
}
/*
* This routine is called from the partition-table code in pt/msdos.c.
* It has two tasks:
* (i) to handle Ontrack DiskManager by offsetting everything by 63 sectors,
* or to handle EZdrive by remapping sector 0 to sector 1.
* (ii) to invent a translated geometry.
* Part (i) is suppressed if the user specifies the "noremap" option
* on the command line.
* Part (ii) is suppressed if the user specifies an explicit geometry.
*
* The ptheads parameter is either 0 or tells about the number of
* heads shown by the end of the first nonempty partition.
* If this is either 16, 32, 64, 128, 240 or 255 we'll believe it.
*
* The xparm parameter has the following meaning:
* 0 = convert to CHS with fewer than 1024 cyls
* using the same method as Ontrack DiskManager.
* 1 = same as "0", plus offset everything by 63 sectors.
* -1 = similar to "0", plus redirect sector 0 to sector 1.
* 2 = convert to a CHS geometry with "ptheads" heads.
*
* Returns 0 if the translation was not possible, if the device was not
* an IDE disk drive, or if a geometry was "forced" on the commandline.
* Returns 1 if the geometry translation was successful.
*/
int ide_xlate_1024(kdev_t i_rdev, int xparm, int ptheads, const char *msg)
{
struct ata_device *drive;
const char *msg1 = "";
int heads = 0;
int c, h, s;
int transl = 1; /* try translation */
int ret = 0;
drive = get_info_ptr(i_rdev);
if (!drive)
return 0;
/* remap? */
if (drive->remap_0_to_1 != 2) {
if (xparm == 1) { /* DM */
drive->sect0 = 63;
msg1 = " [remap +63]";
ret = 1;
} else if (xparm == -1) { /* EZ-Drive */
if (drive->remap_0_to_1 == 0) {
drive->remap_0_to_1 = 1;
msg1 = " [remap 0->1]";
ret = 1;
}
}
}
/* There used to be code here that assigned drive->id->CHS
to drive->CHS and that to drive->bios_CHS. However,
some disks have id->C/H/S = 4092/16/63 but are larger than 2.1 GB.
In such cases that code was wrong. Moreover,
there seems to be no reason to do any of these things. */
/* translate? */
if (drive->forced_geom)
transl = 0;
/* does ptheads look reasonable? */
if (ptheads == 32 || ptheads == 64 || ptheads == 128 ||
ptheads == 240 || ptheads == 255)
heads = ptheads;
if (xparm == 2) {
if (!heads ||
(drive->bios_head >= heads && drive->bios_sect == 63))
transl = 0;
}
if (xparm == -1) {
if (drive->bios_head > 16)
transl = 0; /* we already have a translation */
}
if (transl) {
ontrack(drive, heads, &c, &h, &s);
drive->bios_cyl = c;
drive->bios_head = h;
drive->bios_sect = s;
ret = 1;
}
drive->part[0].nr_sects = ata_capacity(drive);
if (ret)
printk("%s%s [%d/%d/%d]", msg, msg1,
drive->bios_cyl, drive->bios_head, drive->bios_sect);
return ret;
}
#endif
This diff is collapsed.
......@@ -977,7 +977,6 @@ int ide_cmd_ioctl(struct ata_device *drive, unsigned long arg)
/* FIXME: what about the setup for the drive?! */
if (drive->channel->speedproc)
drive->channel->speedproc(drive, pio);
ide_driveid_update(drive);
}
abort:
......
......@@ -219,31 +219,6 @@ static void init_hwif_data(struct ata_channel *ch, unsigned int index)
extern struct block_device_operations ide_fops[];
/*
* This is called exactly *once* for each channel.
*/
void ide_geninit(struct ata_channel *ch)
{
unsigned int unit;
struct gendisk *gd = ch->gd;
for (unit = 0; unit < MAX_DRIVES; ++unit) {
struct ata_device *drive = &ch->drives[unit];
if (!drive->present)
continue;
if (drive->type != ATA_DISK && drive->type != ATA_FLOPPY)
continue;
register_disk(gd,mk_kdev(ch->major,unit<<PARTN_BITS),
#ifdef CONFIG_BLK_DEV_ISAPNP
(drive->forced_geom && drive->noprobe) ? 1 :
#endif
1 << PARTN_BITS, ide_fops, ata_capacity(drive));
}
}
/*
* Returns the (struct ata_device *) for a given device number. Return
* NULL if the given device number does not match any present drives.
......@@ -303,7 +278,10 @@ int ata_revalidate(kdev_t i_rdev)
if (!res) {
if (ata_ops(drive) && ata_ops(drive)->revalidate) {
ata_get(ata_ops(drive));
/* this is a no-op for tapes and SCSI based access */
/* This is expected to be a no-op for tapes and SCSI
* based access.
*/
ata_ops(drive)->revalidate(drive);
ata_put(ata_ops(drive));
} else
......@@ -312,6 +290,7 @@ int ata_revalidate(kdev_t i_rdev)
drive->busy = 0;
wake_up(&drive->wqueue);
MOD_DEC_USE_COUNT;
return res;
......@@ -359,6 +338,9 @@ void ide_driver_module(void)
revalidate_drives();
}
/*
* Release the data associated with a channel.
*/
void ide_unregister(struct ata_channel *ch)
{
struct gendisk *gd;
......@@ -614,7 +596,7 @@ static struct ata_operations * subdriver_iterator(struct ata_operations *prev)
/*
* Register an IDE interface, specifing exactly the registers etc
* Set init=1 iff calling before probes have taken place.
* Set initializing=1 iff calling before probes have taken place.
*/
int ide_register_hw(hw_regs_t *hw)
{
......@@ -776,80 +758,8 @@ static void __init init_global_data(void)
* line" strings beginning with "hdx=" or "ide".It gets called even before the
* actual module gets initialized.
*
* Here is the complete set currently supported comand line options:
*
* "hdx=" is recognized for all "x" from "a" to "h", such as "hdc".
* "idex=" is recognized for all "x" from "0" to "3", such as "ide1".
*
* "hdx=noprobe" : drive may be present, but do not probe for it
* "hdx=none" : drive is NOT present, ignore cmos and do not probe
* "hdx=nowerr" : ignore the WRERR_STAT bit on this drive
* "hdx=cdrom" : drive is present, and is a cdrom drive
* "hdx=cyl,head,sect" : disk drive is present, with specified geometry
* "hdx=noremap" : do not remap 0->1 even though EZD was detected
* "hdx=autotune" : driver will attempt to tune interface speed
* to the fastest PIO mode supported,
* if possible for this drive only.
* Not fully supported by all chipset types,
* and quite likely to cause trouble with
* older/odd IDE drives.
*
* "hdx=slow" : insert a huge pause after each access to the data
* port. Should be used only as a last resort.
*
* "hdxlun=xx" : set the drive last logical unit.
* "hdx=flash" : allows for more than one ata_flash disk to be
* registered. In most cases, only one device
* will be present.
* "hdx=ide-scsi" : the return of the ide-scsi flag, this is useful for
* allowwing ide-floppy, ide-tape, and ide-cdrom|writers
* to use ide-scsi emulation on a device specific option.
* "idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz,
* where "xx" is between 20 and 66 inclusive,
* used when tuning chipset PIO modes.
* For PCI bus, 25 is correct for a P75 system,
* 30 is correct for P90,P120,P180 systems,
* and 33 is used for P100,P133,P166 systems.
* If in doubt, use idebus=33 for PCI.
* As for VLB, it is safest to not specify it.
*
* "idex=noprobe" : do not attempt to access/use this interface
* "idex=base" : probe for an interface at the address specified,
* where "base" is usually 0x1f0 or 0x170
* and "ctl" is assumed to be "base"+0x206
* "idex=base,ctl" : specify both base and ctl
* "idex=base,ctl,irq" : specify base, ctl, and irq number
* "idex=autotune" : driver will attempt to tune interface speed
* to the fastest PIO mode supported,
* for all drives on this interface.
* Not fully supported by all chipset types,
* and quite likely to cause trouble with
* older/odd IDE drives.
* "idex=noautotune" : driver will NOT attempt to tune interface speed
* This is the default for most chipsets,
* except the cmd640.
* "idex=serialize" : do not overlap operations on idex and ide(x^1)
* "idex=four" : four drives on idex and ide(x^1) share same ports
* "idex=reset" : reset interface before first use
* "idex=dma" : enable DMA by default on both drives if possible
* "idex=ata66" : informs the interface that it has an 80c cable
* for chipsets that are ATA-66 capable, but
* the ablity to bit test for detection is
* currently unknown.
* "ide=reverse" : Formerly called to pci sub-system, but now local.
*
* The following are valid ONLY on ide0, (except dc4030)
* and the defaults for the base,ctl ports must not be altered.
*
* "ide0=dtc2278" : probe/support DTC2278 interface
* "ide0=ht6560b" : probe/support HT6560B interface
* "ide0=cmd640_vlb" : *REQUIRED* for VLB cards with the CMD640 chip
* (not for PCI -- automatically detected)
* "ide0=qd65xx" : probe/support qd65xx interface
* "ide0=ali14xx" : probe/support ali14xx chipsets (ALI M1439, M1443, M1445)
* "ide0=umc8672" : probe/support umc8672 chipsets
* "idex=dc4030" : probe/support Promise DC4030VL interface
* "ide=doubler" : probe/support IDE doublers on Amiga
* Please look at Documentation/ide.txt to see the complete list of supported
* options.
*/
int __init ide_setup(char *s)
{
......@@ -1098,14 +1008,14 @@ int __init ide_setup(char *s)
case -6: /* dma */
ch->autodma = 1;
goto done;
case -5: /* "reset" */
case -5: /* reset */
ch->reset = 1;
goto done;
case -4: /* "noautotune" */
case -4: /* noautotune */
ch->drives[0].autotune = 2;
ch->drives[1].autotune = 2;
goto done;
case -3: /* "autotune" */
case -3: /* autotune */
ch->drives[0].autotune = 1;
ch->drives[1].autotune = 1;
goto done;
......@@ -1167,21 +1077,21 @@ int ide_register_subdriver(struct ata_device *drive, struct ata_operations *driv
{
unsigned long flags;
save_flags(flags); /* all CPUs */
cli(); /* all CPUs */
/* FIXME: The locking here doesn't make the slightest sense! */
spin_lock_irqsave(&ide_lock, flags);
if (!drive->present || drive->driver != NULL || drive->busy || drive->usage) {
restore_flags(flags); /* all CPUs */
spin_unlock_irqrestore(&ide_lock, flags);
return 1;
}
/* FIXME: This will be pushed to the drivers! Thus allowing us to
* save one parameter here separate this out.
* save one parameter here and to separate this out.
*/
drive->driver = driver;
restore_flags(flags); /* all CPUs */
/* FIXME: Check what this magic number is supposed to be about? */
spin_unlock_irqrestore(&ide_lock, flags);
/* Default autotune or requested autotune */
if (drive->autotune != 2) {
if (drive->channel->XXX_udma) {
......@@ -1380,11 +1290,9 @@ static struct notifier_block ata_notifier = {
*/
static int __init ata_module_init(void)
{
int h;
printk(KERN_INFO "ATA/ATAPI device driver v" VERSION "\n");
ide_devfs_handle = devfs_mk_dir (NULL, "ide", NULL);
ide_devfs_handle = devfs_mk_dir(NULL, "ata", NULL);
/*
* Because most of the ATA adapters represent the timings in unit of
......@@ -1583,12 +1491,6 @@ static int __init ata_module_init(void)
initializing = 0;
for (h = 0; h < MAX_HWIFS; ++h) {
struct ata_channel *channel = &ide_hwifs[h];
if (channel->present)
ide_geninit(channel);
}
register_reboot_notifier(&ata_notifier);
return 0;
......
......@@ -102,14 +102,16 @@ typedef struct ide_pci_enablebit_s {
/* Flags used to untangle quirk handling.
*/
#define ATA_F_DMA 0x01
#define ATA_F_NODMA 0x02 /* no DMA mode supported at all */
#define ATA_F_NOADMA 0x04 /* DMA has to be enabled explicitely */
#define ATA_F_FIXIRQ 0x08 /* fixed irq wiring */
#define ATA_F_SER 0x10 /* serialize on first and second channel interrupts */
#define ATA_F_IRQ 0x20 /* trust IRQ information from config */
#define ATA_F_PHACK 0x40 /* apply PROMISE hacks */
#define ATA_F_HPTHACK 0x80 /* apply HPT366 hacks */
#define ATA_F_DMA 0x001
#define ATA_F_NODMA 0x002 /* no DMA mode supported at all */
#define ATA_F_NOADMA 0x004 /* DMA has to be enabled explicitely */
#define ATA_F_FDMA 0x008 /* force autodma */
#define ATA_F_FIXIRQ 0x010 /* fixed irq wiring */
#define ATA_F_SER 0x020 /* serialize on first and second channel interrupts */
#define ATA_F_IRQ 0x040 /* trust IRQ information from config */
#define ATA_F_PHACK 0x080 /* apply PROMISE hacks */
#define ATA_F_HPTHACK 0x100 /* apply HPT366 hacks */
#define ATA_F_SIMPLEX 0x200 /* force treatment as simple device */
struct ata_pci_device {
......
......@@ -53,8 +53,6 @@
#define PDC202XX_DEBUG_DRIVE_INFO 0
#define PDC202XX_DECODE_REGISTER_INFO 0
extern char *ide_xfer_verbose (byte xfer_rate);
/* A Register */
#define SYNC_ERRDY_EN 0xC0
......@@ -276,12 +274,12 @@ static int pdc202xx_tune_chipset(struct ata_device *drive, byte speed)
drive->current_speed = speed;
#if PDC202XX_DEBUG_DRIVE_INFO
printk("%s: %s drive%d 0x%08x ",
drive->name, ide_xfer_verbose(speed),
printk("%s: %02x drive%d 0x%08x ",
drive->name, speed,
drive->dn, drive_conf);
pci_read_config_dword(dev, drive_pci, &drive_conf);
printk("0x%08x\n", drive_conf);
#endif /* PDC202XX_DEBUG_DRIVE_INFO */
#endif
return ide_config_drive_speed(drive, speed);
}
......
......@@ -237,8 +237,6 @@ static byte svwks_proc;
#define SVWKS_CSB5_REVISION_NEW 0x92 /* min PCI_REVISION_ID for UDMA5 (A2.0) */
extern char *ide_xfer_verbose (byte xfer_rate);
static struct pci_dev *isa_dev;
static int svwks_ratemask(struct ata_device *drive)
......@@ -347,8 +345,8 @@ static int svwks_tune_chipset(struct ata_device *drive, byte speed)
#endif
#if SVWKS_DEBUG_DRIVE_INFO
printk("%s: %s drive%d\n", drive->name, ide_xfer_verbose(speed), drive->dn);
#endif /* SVWKS_DEBUG_DRIVE_INFO */
printk("%s: %02x drive%d\n", drive->name, speed, drive->dn);
#endif
pci_write_config_byte(dev, drive_pci, pio_timing);
if (csb5)
......@@ -681,7 +679,8 @@ static struct ata_pci_device chipsets[] __initdata = {
init_chipset: svwks_init_chipset,
ata66_check: svwks_ata66_check,
init_channel: ide_init_svwks,
bootable: ON_BOARD
bootable: ON_BOARD,
flags: ATA_F_SIMPLEX
},
};
......
......@@ -403,11 +403,11 @@ static int sis_get_info (char *buffer, char **addr, off_t offset, int count)
return p-buffer;
}
#endif /* defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_PROC_FS) */
byte sis_proc = 0;
extern char *ide_xfer_verbose (byte xfer_rate);
#endif
static int sis5513_ratemask(struct ata_device *drive)
{
......
......@@ -29,8 +29,6 @@
#include "ata-timing.h"
#include "pcihost.h"
extern char *ide_xfer_verbose (byte xfer_rate);
/*
* SL82C105 PCI config register 0x40 bits.
*/
......@@ -100,8 +98,9 @@ static void config_for_pio(struct ata_device *drive, int pio, int report)
pci_read_config_word(dev, reg, &drv_ctrl);
if (report) {
printk("%s: selected %s (%dns) (%04X)\n", drive->name,
ide_xfer_verbose(xfer_mode), t->cycle, drv_ctrl);
printk("%s: selected %02x (%dns) (%04X)\n",
drive->name, xfer_mode,
t->cycle, drv_ctrl);
}
}
}
......
......@@ -2,8 +2,6 @@
# Makefile for the Linux IEEE 1394 implementation
#
O_TARGET := ieee1394drv.o
export-objs := ieee1394_core.o ohci1394.o cmp.o
ieee1394-objs := ieee1394_core.o ieee1394_transactions.o hosts.o \
......
......@@ -2,10 +2,6 @@
# Makefile for the input core drivers.
#
# The target object and module list name.
O_TARGET := inputdrv.o
# Objects that export symbols.
mod-subdirs := joystick
......
......@@ -2,10 +2,6 @@
# Makefile for the gameport drivers.
#
# The target object and module list name.
O_TARGET := gamedrv.o
# Objects that export symbols.
export-objs := gameport.o
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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