# SPDX-License-Identifier: GPL-2.0
#
# link order is important here
#

ccflags-y				:= -Idrivers/ide

ide-core-y += ide.o ide-ioctls.o ide-io.o ide-iops.o ide-lib.o ide-probe.o \
	      ide-taskfile.o ide-pm.o ide-park.o ide-sysfs.o ide-devsets.o \
	      ide-io-std.o ide-eh.o

# core IDE code
ide-core-$(CONFIG_IDE_XFER_MODE)	+= ide-pio-blacklist.o ide-xfer-mode.o
ide-core-$(CONFIG_IDE_TIMINGS)		+= ide-timings.o
ide-core-$(CONFIG_IDE_ATAPI)		+= ide-atapi.o
ide-core-$(CONFIG_BLK_DEV_IDEPCI)	+= setup-pci.o
ide-core-$(CONFIG_BLK_DEV_IDEDMA)	+= ide-dma.o
ide-core-$(CONFIG_BLK_DEV_IDEDMA_SFF)	+= ide-dma-sff.o
ide-core-$(CONFIG_IDE_PROC_FS)		+= ide-proc.o
ide-core-$(CONFIG_BLK_DEV_IDEACPI)	+= ide-acpi.o
ide-core-$(CONFIG_IDE_LEGACY)		+= ide-legacy.o

obj-$(CONFIG_IDE)			+= ide-core.o

obj-$(CONFIG_BLK_DEV_ALI14XX)		+= ali14xx.o
obj-$(CONFIG_BLK_DEV_UMC8672)		+= umc8672.o
obj-$(CONFIG_BLK_DEV_DTC2278)		+= dtc2278.o
obj-$(CONFIG_BLK_DEV_HT6560B)		+= ht6560b.o
obj-$(CONFIG_BLK_DEV_QD65XX)		+= qd65xx.o
obj-$(CONFIG_BLK_DEV_4DRIVES)		+= ide-4drives.o

obj-$(CONFIG_BLK_DEV_GAYLE)		+= gayle.o
obj-$(CONFIG_BLK_DEV_FALCON_IDE)	+= falconide.o
obj-$(CONFIG_BLK_DEV_MAC_IDE)		+= macide.o
obj-$(CONFIG_BLK_DEV_Q40IDE)		+= q40ide.o
obj-$(CONFIG_BLK_DEV_BUDDHA)		+= buddha.o

obj-$(CONFIG_BLK_DEV_AEC62XX)		+= aec62xx.o
obj-$(CONFIG_BLK_DEV_ALI15X3)		+= alim15x3.o
obj-$(CONFIG_BLK_DEV_AMD74XX)		+= amd74xx.o
obj-$(CONFIG_BLK_DEV_ATIIXP)		+= atiixp.o
obj-$(CONFIG_BLK_DEV_CMD64X)		+= cmd64x.o
obj-$(CONFIG_BLK_DEV_CS5520)		+= cs5520.o
obj-$(CONFIG_BLK_DEV_CS5530)		+= cs5530.o
obj-$(CONFIG_BLK_DEV_CS5535)		+= cs5535.o
obj-$(CONFIG_BLK_DEV_CS5536)		+= cs5536.o
obj-$(CONFIG_BLK_DEV_SC1200)		+= sc1200.o
obj-$(CONFIG_BLK_DEV_CY82C693)		+= cy82c693.o
obj-$(CONFIG_BLK_DEV_DELKIN)		+= delkin_cb.o
obj-$(CONFIG_BLK_DEV_HPT366)		+= hpt366.o
obj-$(CONFIG_BLK_DEV_IT8172)		+= it8172.o
obj-$(CONFIG_BLK_DEV_IT8213)		+= it8213.o
obj-$(CONFIG_BLK_DEV_IT821X)		+= it821x.o
obj-$(CONFIG_BLK_DEV_JMICRON)		+= jmicron.o
obj-$(CONFIG_BLK_DEV_NS87415)		+= ns87415.o
obj-$(CONFIG_BLK_DEV_OPTI621)		+= opti621.o
obj-$(CONFIG_BLK_DEV_PDC202XX_OLD)	+= pdc202xx_old.o
obj-$(CONFIG_BLK_DEV_PDC202XX_NEW)	+= pdc202xx_new.o
obj-$(CONFIG_BLK_DEV_PIIX)		+= piix.o
obj-$(CONFIG_BLK_DEV_RZ1000)		+= rz1000.o
obj-$(CONFIG_BLK_DEV_SVWKS)		+= serverworks.o
obj-$(CONFIG_BLK_DEV_SIIMAGE)		+= siimage.o
obj-$(CONFIG_BLK_DEV_SIS5513)		+= sis5513.o
obj-$(CONFIG_BLK_DEV_SL82C105)		+= sl82c105.o
obj-$(CONFIG_BLK_DEV_SLC90E66)		+= slc90e66.o
obj-$(CONFIG_BLK_DEV_TC86C001)		+= tc86c001.o
obj-$(CONFIG_BLK_DEV_TRIFLEX)		+= triflex.o
obj-$(CONFIG_BLK_DEV_TRM290)		+= trm290.o
obj-$(CONFIG_BLK_DEV_VIA82CXXX)		+= via82cxxx.o

# Must appear at the end of the block
obj-$(CONFIG_BLK_DEV_GENERIC)		+= ide-pci-generic.o

obj-$(CONFIG_IDEPCI_PCIBUS_ORDER)	+= ide-scan-pci.o

obj-$(CONFIG_BLK_DEV_CMD640)		+= cmd640.o

obj-$(CONFIG_BLK_DEV_IDE_PMAC)		+= pmac.o

obj-$(CONFIG_IDE_GENERIC)		+= ide-generic.o
obj-$(CONFIG_BLK_DEV_IDEPNP)		+= ide-pnp.o

ide-gd_mod-y += ide-gd.o
ide-cd_mod-y += ide-cd.o ide-cd_ioctl.o ide-cd_verbose.o

ifeq ($(CONFIG_IDE_GD_ATA), y)
	ide-gd_mod-y += ide-disk.o ide-disk_ioctl.o
ifeq ($(CONFIG_IDE_PROC_FS), y)
	ide-gd_mod-y += ide-disk_proc.o
endif
endif

ifeq ($(CONFIG_IDE_GD_ATAPI), y)
	ide-gd_mod-y += ide-floppy.o ide-floppy_ioctl.o
ifeq ($(CONFIG_IDE_PROC_FS), y)
	ide-gd_mod-y += ide-floppy_proc.o
endif
endif

obj-$(CONFIG_IDE_GD)			+= ide-gd_mod.o
obj-$(CONFIG_BLK_DEV_IDECD)		+= ide-cd_mod.o
obj-$(CONFIG_BLK_DEV_IDETAPE)		+= ide-tape.o

obj-$(CONFIG_BLK_DEV_IDECS)		+= ide-cs.o

obj-$(CONFIG_BLK_DEV_PLATFORM)		+= ide_platform.o

obj-$(CONFIG_BLK_DEV_IDE_ICSIDE)	+= icside.o
obj-$(CONFIG_BLK_DEV_IDE_RAPIDE)	+= rapide.o
obj-$(CONFIG_BLK_DEV_PALMCHIP_BK3710)	+= palm_bk3710.o

obj-$(CONFIG_BLK_DEV_IDE_AU1XXX)	+= au1xxx-ide.o

obj-$(CONFIG_BLK_DEV_IDE_TX4938)	+= tx4938ide.o
obj-$(CONFIG_BLK_DEV_IDE_TX4939)	+= tx4939ide.o
