diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-04-26 16:25:14 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-04-26 16:25:14 -0400 |
commit | ac95beedf8bc97b24f9540d4da9952f07221c023 (patch) | |
tree | c29837142c8083b6fcaf1767abcb0a4533676cd1 /drivers/ide/pci/cmd640.c | |
parent | 4a27214d7be31e122db4102166f49ec15958e8e9 (diff) |
ide: add struct ide_port_ops (take 2)
* Move hooks for port/host specific methods from ide_hwif_t to
'struct ide_port_ops'.
* Add 'const struct ide_port_ops *port_ops' to 'struct ide_port_info'
and ide_hwif_t.
* Update host drivers and core code accordingly.
While at it:
* Rename ata66_*() cable detect functions to *_cable_detect() to match
the standard naming. (Suggested by Sergei Shtylyov)
v2:
* Fix build for bast-ide. (Noticed by Andrew Morton)
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/pci/cmd640.c')
-rw-r--r-- | drivers/ide/pci/cmd640.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/ide/pci/cmd640.c b/drivers/ide/pci/cmd640.c index b076dbfc43a7..de1bbdcf2297 100644 --- a/drivers/ide/pci/cmd640.c +++ b/drivers/ide/pci/cmd640.c | |||
@@ -633,6 +633,9 @@ static void cmd640_set_pio_mode(ide_drive_t *drive, const u8 pio) | |||
633 | display_clocks(index); | 633 | display_clocks(index); |
634 | } | 634 | } |
635 | 635 | ||
636 | static const struct ide_port_ops cmd640_port_ops = { | ||
637 | .set_pio_mode = cmd640_set_pio_mode, | ||
638 | }; | ||
636 | #endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */ | 639 | #endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */ |
637 | 640 | ||
638 | static int pci_conf1(void) | 641 | static int pci_conf1(void) |
@@ -678,6 +681,7 @@ static const struct ide_port_info cmd640_port_info __initdata = { | |||
678 | IDE_HFLAG_ABUSE_PREFETCH | | 681 | IDE_HFLAG_ABUSE_PREFETCH | |
679 | IDE_HFLAG_ABUSE_FAST_DEVSEL, | 682 | IDE_HFLAG_ABUSE_FAST_DEVSEL, |
680 | #ifdef CONFIG_BLK_DEV_CMD640_ENHANCED | 683 | #ifdef CONFIG_BLK_DEV_CMD640_ENHANCED |
684 | .port_ops = &cmd640_port_ops, | ||
681 | .pio_mask = ATA_PIO5, | 685 | .pio_mask = ATA_PIO5, |
682 | #endif | 686 | #endif |
683 | }; | 687 | }; |
@@ -752,9 +756,6 @@ static int __init cmd640x_init(void) | |||
752 | */ | 756 | */ |
753 | if (cmd_hwif0) { | 757 | if (cmd_hwif0) { |
754 | ide_init_port_hw(cmd_hwif0, &hw[0]); | 758 | ide_init_port_hw(cmd_hwif0, &hw[0]); |
755 | #ifdef CONFIG_BLK_DEV_CMD640_ENHANCED | ||
756 | cmd_hwif0->set_pio_mode = &cmd640_set_pio_mode; | ||
757 | #endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */ | ||
758 | 759 | ||
759 | idx[0] = cmd_hwif0->index; | 760 | idx[0] = cmd_hwif0->index; |
760 | } | 761 | } |
@@ -808,9 +809,6 @@ static int __init cmd640x_init(void) | |||
808 | */ | 809 | */ |
809 | if (second_port_cmd640 && cmd_hwif1) { | 810 | if (second_port_cmd640 && cmd_hwif1) { |
810 | ide_init_port_hw(cmd_hwif1, &hw[1]); | 811 | ide_init_port_hw(cmd_hwif1, &hw[1]); |
811 | #ifdef CONFIG_BLK_DEV_CMD640_ENHANCED | ||
812 | cmd_hwif1->set_pio_mode = &cmd640_set_pio_mode; | ||
813 | #endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */ | ||
814 | 812 | ||
815 | idx[1] = cmd_hwif1->index; | 813 | idx[1] = cmd_hwif1->index; |
816 | } | 814 | } |