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

Commit 270390e1 authored by Tejun Heo's avatar Tejun Heo Committed by Jeff Garzik
Browse files

libata-sff: introduce ata_sff_init/exit() and ata_sff_port_init()



In preparation of proper SFF/BMDMA separation, introduce
ata_sff_init/exit() and ata_sff_port_init().  These functions
currently don't do anything.

Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent c7087652
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -5670,6 +5670,8 @@ struct ata_port *ata_port_alloc(struct ata_host *host)
	ap->stats.unhandled_irq = 1;
	ap->stats.idle_irq = 1;
#endif
	ata_sff_port_init(ap);

	return ap;
}

@@ -6584,6 +6586,8 @@ static void __init ata_parse_force_param(void)

static int __init ata_init(void)
{
	int rc = -ENOMEM;

	ata_parse_force_param();

	/*
@@ -6595,24 +6599,31 @@ static int __init ata_init(void)
	 */
	ata_wq = create_workqueue("ata");
	if (!ata_wq)
		goto free_force_tbl;
		goto fail;

	ata_aux_wq = create_singlethread_workqueue("ata_aux");
	if (!ata_aux_wq)
		goto free_wq;
		goto fail;

	rc = ata_sff_init();
	if (rc)
		goto fail;

	printk(KERN_DEBUG "libata version " DRV_VERSION " loaded.\n");
	return 0;

free_wq:
	destroy_workqueue(ata_wq);
free_force_tbl:
fail:
	kfree(ata_force_tbl);
	return -ENOMEM;
	if (ata_wq)
		destroy_workqueue(ata_wq);
	if (ata_aux_wq)
		destroy_workqueue(ata_aux_wq);
	return rc;
}

static void __exit ata_exit(void)
{
	ata_sff_exit();
	kfree(ata_force_tbl);
	destroy_workqueue(ata_wq);
	destroy_workqueue(ata_aux_wq);
+23 −0
Original line number Diff line number Diff line
@@ -3061,3 +3061,26 @@ void ata_pci_bmdma_init(struct ata_host *host)
EXPORT_SYMBOL_GPL(ata_pci_bmdma_init);

#endif /* CONFIG_PCI */

/**
 *	ata_sff_port_init - Initialize SFF/BMDMA ATA port
 *	@ap: Port to initialize
 *
 *	Called on port allocation to initialize SFF/BMDMA specific
 *	fields.
 *
 *	LOCKING:
 *	None.
 */
void ata_sff_port_init(struct ata_port *ap)
{
}

int __init ata_sff_init(void)
{
	return 0;
}

void __exit ata_sff_exit(void)
{
}
+10 −0
Original line number Diff line number Diff line
@@ -203,6 +203,16 @@ static inline int sata_pmp_attach(struct ata_device *dev)
/* libata-sff.c */
#ifdef CONFIG_ATA_SFF
extern void ata_pio_task(struct work_struct *work);
extern void ata_sff_port_init(struct ata_port *ap);
extern int ata_sff_init(void);
extern void ata_sff_exit(void);
#else /* CONFIG_ATA_SFF */
static inline void ata_sff_port_init(struct ata_port *ap)
{ }
static inline int ata_sff_init(void)
{ return 0; }
static inline void ata_sff_exit(void)
{ }
#endif /* CONFIG_ATA_SFF */

#endif /* __LIBATA_H__ */