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: Tejun Heo <tj@kernel.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>hifive-unleashed-5.1
parent
c7087652e1
commit
270390e1ae
|
@ -5670,6 +5670,8 @@ struct ata_port *ata_port_alloc(struct ata_host *host)
|
||||||
ap->stats.unhandled_irq = 1;
|
ap->stats.unhandled_irq = 1;
|
||||||
ap->stats.idle_irq = 1;
|
ap->stats.idle_irq = 1;
|
||||||
#endif
|
#endif
|
||||||
|
ata_sff_port_init(ap);
|
||||||
|
|
||||||
return ap;
|
return ap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6584,6 +6586,8 @@ static void __init ata_parse_force_param(void)
|
||||||
|
|
||||||
static int __init ata_init(void)
|
static int __init ata_init(void)
|
||||||
{
|
{
|
||||||
|
int rc = -ENOMEM;
|
||||||
|
|
||||||
ata_parse_force_param();
|
ata_parse_force_param();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -6595,24 +6599,31 @@ static int __init ata_init(void)
|
||||||
*/
|
*/
|
||||||
ata_wq = create_workqueue("ata");
|
ata_wq = create_workqueue("ata");
|
||||||
if (!ata_wq)
|
if (!ata_wq)
|
||||||
goto free_force_tbl;
|
goto fail;
|
||||||
|
|
||||||
ata_aux_wq = create_singlethread_workqueue("ata_aux");
|
ata_aux_wq = create_singlethread_workqueue("ata_aux");
|
||||||
if (!ata_aux_wq)
|
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");
|
printk(KERN_DEBUG "libata version " DRV_VERSION " loaded.\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
free_wq:
|
fail:
|
||||||
destroy_workqueue(ata_wq);
|
|
||||||
free_force_tbl:
|
|
||||||
kfree(ata_force_tbl);
|
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)
|
static void __exit ata_exit(void)
|
||||||
{
|
{
|
||||||
|
ata_sff_exit();
|
||||||
kfree(ata_force_tbl);
|
kfree(ata_force_tbl);
|
||||||
destroy_workqueue(ata_wq);
|
destroy_workqueue(ata_wq);
|
||||||
destroy_workqueue(ata_aux_wq);
|
destroy_workqueue(ata_aux_wq);
|
||||||
|
|
|
@ -3061,3 +3061,26 @@ void ata_pci_bmdma_init(struct ata_host *host)
|
||||||
EXPORT_SYMBOL_GPL(ata_pci_bmdma_init);
|
EXPORT_SYMBOL_GPL(ata_pci_bmdma_init);
|
||||||
|
|
||||||
#endif /* CONFIG_PCI */
|
#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)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
|
@ -203,6 +203,16 @@ static inline int sata_pmp_attach(struct ata_device *dev)
|
||||||
/* libata-sff.c */
|
/* libata-sff.c */
|
||||||
#ifdef CONFIG_ATA_SFF
|
#ifdef CONFIG_ATA_SFF
|
||||||
extern void ata_pio_task(struct work_struct *work);
|
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 /* CONFIG_ATA_SFF */
|
||||||
|
|
||||||
#endif /* __LIBATA_H__ */
|
#endif /* __LIBATA_H__ */
|
||||||
|
|
Loading…
Reference in New Issue