Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 127102ae authored by Tejun Heo's avatar Tejun Heo Committed by Jeff Garzik
Browse files

libata: make SFF support optional



Now that SFF support is completely separated out from the core layer,
it can be made optional.  Add CONFIG_ATA_SFF and let SFF drivers
depend on it.  If CONFIG_ATA_SFF isn't set, all codes in libata-sff.c
and data structures for SFF support are disabled.  This saves good
number of bytes for small systems.

Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
parent 350756f6
Loading
Loading
Loading
Loading
+27 −17
Original line number Diff line number Diff line
@@ -49,6 +49,32 @@ config SATA_AHCI

	  If unsure, say N.

config SATA_SIL24
	tristate "Silicon Image 3124/3132 SATA support"
	depends on PCI
	help
	  This option enables support for Silicon Image 3124/3132 Serial ATA.

	  If unsure, say N.

config SATA_FSL
	tristate "Freescale 3.0Gbps SATA support"
	depends on FSL_SOC
	help
	  This option enables support for Freescale 3.0Gbps SATA controller.
	  It can be found on MPC837x and MPC8315.

	  If unsure, say N.

config ATA_SFF
	bool "ATA SFF support"
	default y
	help
	  This option adds support for ATA controllers with SFF
	  compliant or similar programming interface.

if ATA_SFF

config SATA_SVW
	tristate "ServerWorks Frodo / Apple K2 SATA support"
	depends on PCI
@@ -125,14 +151,6 @@ config SATA_SIL

	  If unsure, say N.

config SATA_SIL24
	tristate "Silicon Image 3124/3132 SATA support"
	depends on PCI
	help
	  This option enables support for Silicon Image 3124/3132 Serial ATA.

	  If unsure, say N.

config SATA_SIS
	tristate "SiS 964/965/966/180 SATA support"
	depends on PCI
@@ -183,15 +201,6 @@ config PATA_ACPI
	  firmware in the BIOS. This driver can sometimes handle
	  otherwise unsupported hardware.

config SATA_FSL
	tristate "Freescale 3.0Gbps SATA support"
	depends on FSL_SOC
	help
	  This option enables support for Freescale 3.0Gbps SATA controller.
	  It can be found on MPC837x and MPC8315.

	  If unsure, say N.

config PATA_ALI
	tristate "ALi PATA support (Experimental)"
	depends on PCI && EXPERIMENTAL
@@ -679,4 +688,5 @@ config PATA_BF54X

	  If unsure, say N.

endif # ATA_SFF
endif # ATA
+2 −2
Original line number Diff line number Diff line
@@ -78,6 +78,6 @@ obj-$(CONFIG_ATA_GENERIC) += ata_generic.o
# Should be last libata driver
obj-$(CONFIG_PATA_LEGACY)	+= pata_legacy.o

libata-objs	:= libata-core.o libata-scsi.o libata-sff.o libata-eh.o \
		   libata-pmp.o
libata-objs	:= libata-core.o libata-scsi.o libata-eh.o libata-pmp.o
libata-$(CONFIG_ATA_SFF)	+= libata-sff.o
libata-$(CONFIG_ATA_ACPI)	+= libata-acpi.o
+2 −0
Original line number Diff line number Diff line
@@ -5195,7 +5195,9 @@ struct ata_port *ata_port_alloc(struct ata_host *host)
	ap->msg_enable = ATA_MSG_DRV | ATA_MSG_ERR | ATA_MSG_WARN;
#endif

#ifdef CONFIG_ATA_SFF
	INIT_DELAYED_WORK(&ap->port_task, ata_pio_task);
#endif
	INIT_DELAYED_WORK(&ap->hotplug_task, ata_scsi_hotplug);
	INIT_WORK(&ap->scsi_rescan_task, ata_scsi_dev_rescan);
	INIT_LIST_HEAD(&ap->eh_done_q);
+2 −0
Original line number Diff line number Diff line
@@ -2393,7 +2393,9 @@ static void atapi_request_sense(struct ata_queued_cmd *qc)
	/* FIXME: is this needed? */
	memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);

#ifdef CONFIG_ATA_SFF
	ap->ops->sff_tf_read(ap, &qc->tf);
#endif

	/* fill these in, for the case where they are -not- overwritten */
	cmd->sense_buffer[0] = 0x70;
+4 −0
Original line number Diff line number Diff line
@@ -42,8 +42,10 @@ static inline int ata_is_builtin_hardreset(ata_reset_fn_t reset)
{
	if (reset == sata_std_hardreset)
		return 1;
#ifdef CONFIG_ATA_SFF
	if (reset == sata_sff_hardreset)
		return 1;
#endif
	return 0;
}

@@ -206,9 +208,11 @@ extern int ata_eh_recover(struct ata_port *ap, ata_prereset_fn_t prereset,
extern void ata_eh_finish(struct ata_port *ap);

/* libata-sff.c */
#ifdef CONFIG_ATA_SFF
extern void ata_dev_select(struct ata_port *ap, unsigned int device,
                           unsigned int wait, unsigned int can_sleep);
extern u8 ata_irq_on(struct ata_port *ap);
extern void ata_pio_task(struct work_struct *work);
#endif /* CONFIG_ATA_SFF */

#endif /* __LIBATA_H__ */
Loading