Separate PATA timings code from libata-core.c: * add PATA_TIMINGS config option and make corresponding PATA host drivers (and ATA ACPI code) select it * move following PATA timings code to libata-pata-timings.c: - ata_timing_quantize() - ata_timing_merge() - ata_timing_find_mode() - ata_timing_compute() * group above functions together in <linux/libata.h> * include libata-pata-timings.c in the build when PATA_TIMINGS config option is enabled * cover ata_timing_cycle2mode() with CONFIG_ATA_ACPI ifdef (it depends on code from libata-core.c and libata-pata-timings.c while its only user is ATA ACPI) Code size savings on m68k arch using (modified) atari_defconfig: text data bss dec hex filename before: 39688 573 40 40301 9d6d drivers/ata/libata-core.o after: 37820 572 40 38432 9620 drivers/ata/libata-core.o
Showing the changes to include/linux (1 of 5 files). Show all
Unified · Split
| @@ -1205,12 +1205,6 @@ extern int ata_cable_unknown(struct ata_port *ap); · 1204 unmodified lines | ||
| 1205 | 1205 | |
| 1206 | 1206 | /* Timing helpers */ |
| 1207 | 1207 | extern unsigned int ata_pio_need_iordy(const struct ata_device *); |
| 1208 | −extern const struct ata_timing *ata_timing_find_mode(u8 xfer_mode); | |
| 1209 | −extern int ata_timing_compute(struct ata_device *, unsigned short, | |
| 1210 | − struct ata_timing *, int, int); | |
| 1211 | −extern void ata_timing_merge(const struct ata_timing *, | |
| 1212 | − const struct ata_timing *, struct ata_timing *, | |
| 1213 | − unsigned int); | |
| 1214 | 1208 | extern u8 ata_timing_cycle2mode(unsigned int xfer_shift, int cycle); |
| 1215 | 1209 | |
| 1216 | 1210 | /* PCI */ |
| @@ -1807,6 +1801,16 @@ static inline int ata_dma_enabled(struct ata_device *adev) · 590 unmodified lines | ||
| 1807 | 1801 | return (adev->dma_mode == 0xFF ? 0 : 1); |
| 1808 | 1802 | } |
| 1809 | 1803 | |
| 1804 | +/************************************************************************** | |
| 1805 | + * PATA timings - drivers/ata/libata-pata-timings.c | |
| 1806 | + */ | |
| 1807 | +extern const struct ata_timing *ata_timing_find_mode(u8 xfer_mode); | |
| 1808 | +extern int ata_timing_compute(struct ata_device *, unsigned short, | |
| 1809 | + struct ata_timing *, int, int); | |
| 1810 | +extern void ata_timing_merge(const struct ata_timing *, | |
| 1811 | + const struct ata_timing *, struct ata_timing *, | |
| 1812 | + unsigned int); | |
| 1813 | + | |
| 1810 | 1814 | /************************************************************************** |
| 1811 | 1815 | * PMP - drivers/ata/libata-pmp.c |
| 1812 | 1816 | */ |