diff options
| -rw-r--r-- | Documentation/kernel-parameters.txt | 8 | ||||
| -rw-r--r-- | drivers/net/skge.c | 2 | ||||
| -rw-r--r-- | drivers/pci/quirks.c | 30 | ||||
| -rw-r--r-- | drivers/scsi/libata-scsi.c | 7 | ||||
| -rw-r--r-- | drivers/scsi/sata_mv.c | 3 | ||||
| -rw-r--r-- | drivers/scsi/sata_promise.c | 12 | ||||
| -rw-r--r-- | drivers/scsi/sata_sx4.c | 3 | ||||
| -rw-r--r-- | include/asm-ia64/sal.h | 3 | ||||
| -rw-r--r-- | include/linux/libata.h | 1 | ||||
| -rw-r--r-- | init/Kconfig | 4 |
10 files changed, 59 insertions, 14 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 5dffcfefc3c..61a56b100c6 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -633,6 +633,14 @@ running once the system is up. | |||
| 633 | inport.irq= [HW] Inport (ATI XL and Microsoft) busmouse driver | 633 | inport.irq= [HW] Inport (ATI XL and Microsoft) busmouse driver |
| 634 | Format: <irq> | 634 | Format: <irq> |
| 635 | 635 | ||
| 636 | combined_mode= [HW] control which driver uses IDE ports in combined | ||
| 637 | mode: legacy IDE driver, libata, or both | ||
| 638 | (in the libata case, libata.atapi_enabled=1 may be | ||
| 639 | useful as well). Note that using the ide or libata | ||
| 640 | options may affect your device naming (e.g. by | ||
| 641 | changing hdc to sdb). | ||
| 642 | Format: combined (default), ide, or libata | ||
| 643 | |||
| 636 | inttest= [IA64] | 644 | inttest= [IA64] |
| 637 | 645 | ||
| 638 | io7= [HW] IO7 for Marvel based alpha systems | 646 | io7= [HW] IO7 for Marvel based alpha systems |
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index 8b6e2a11e28..00d683063c0 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
| @@ -2280,7 +2280,7 @@ static int skge_xmit_frame(struct sk_buff *skb, struct net_device *dev) | |||
| 2280 | } | 2280 | } |
| 2281 | 2281 | ||
| 2282 | if (unlikely(skge->tx_avail < skb_shinfo(skb)->nr_frags +1)) { | 2282 | if (unlikely(skge->tx_avail < skb_shinfo(skb)->nr_frags +1)) { |
| 2283 | if (!netif_stopped(dev)) { | 2283 | if (!netif_queue_stopped(dev)) { |
| 2284 | netif_stop_queue(dev); | 2284 | netif_stop_queue(dev); |
| 2285 | 2285 | ||
| 2286 | printk(KERN_WARNING PFX "%s: ring full when queue awake!\n", | 2286 | printk(KERN_WARNING PFX "%s: ring full when queue awake!\n", |
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 3a4f49f4eff..f28ebdd3958 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
| @@ -1098,6 +1098,23 @@ static void __init quirk_alder_ioapic(struct pci_dev *pdev) | |||
| 1098 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_EESSC, quirk_alder_ioapic ); | 1098 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_EESSC, quirk_alder_ioapic ); |
| 1099 | #endif | 1099 | #endif |
| 1100 | 1100 | ||
| 1101 | enum ide_combined_type { COMBINED = 0, IDE = 1, LIBATA = 2 }; | ||
| 1102 | /* Defaults to combined */ | ||
| 1103 | static enum ide_combined_type combined_mode; | ||
| 1104 | |||
| 1105 | static int __init combined_setup(char *str) | ||
| 1106 | { | ||
| 1107 | if (!strncmp(str, "ide", 3)) | ||
| 1108 | combined_mode = IDE; | ||
| 1109 | else if (!strncmp(str, "libata", 6)) | ||
| 1110 | combined_mode = LIBATA; | ||
| 1111 | else /* "combined" or anything else defaults to old behavior */ | ||
| 1112 | combined_mode = COMBINED; | ||
| 1113 | |||
| 1114 | return 1; | ||
| 1115 | } | ||
| 1116 | __setup("combined_mode=", combined_setup); | ||
| 1117 | |||
| 1101 | #ifdef CONFIG_SCSI_SATA_INTEL_COMBINED | 1118 | #ifdef CONFIG_SCSI_SATA_INTEL_COMBINED |
| 1102 | static void __devinit quirk_intel_ide_combined(struct pci_dev *pdev) | 1119 | static void __devinit quirk_intel_ide_combined(struct pci_dev *pdev) |
| 1103 | { | 1120 | { |
| @@ -1164,6 +1181,19 @@ static void __devinit quirk_intel_ide_combined(struct pci_dev *pdev) | |||
| 1164 | if (prog & comb) | 1181 | if (prog & comb) |
| 1165 | return; | 1182 | return; |
| 1166 | 1183 | ||
| 1184 | /* Don't reserve any so the IDE driver can get them (but only if | ||
| 1185 | * combined_mode=ide). | ||
| 1186 | */ | ||
| 1187 | if (combined_mode == IDE) | ||
| 1188 | return; | ||
| 1189 | |||
| 1190 | /* Grab them both for libata if combined_mode=libata. */ | ||
| 1191 | if (combined_mode == LIBATA) { | ||
| 1192 | request_region(0x1f0, 8, "libata"); /* port 0 */ | ||
| 1193 | request_region(0x170, 8, "libata"); /* port 1 */ | ||
| 1194 | return; | ||
| 1195 | } | ||
| 1196 | |||
| 1167 | /* SATA port is in legacy mode. Reserve port so that | 1197 | /* SATA port is in legacy mode. Reserve port so that |
| 1168 | * IDE driver does not attempt to use it. If request_region | 1198 | * IDE driver does not attempt to use it. If request_region |
| 1169 | * fails, it will be obvious at boot time, so we don't bother | 1199 | * fails, it will be obvious at boot time, so we don't bother |
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c index e2f298b2ade..665ce382eb2 100644 --- a/drivers/scsi/libata-scsi.c +++ b/drivers/scsi/libata-scsi.c | |||
| @@ -2169,9 +2169,12 @@ ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev) | |||
| 2169 | if (unlikely(!ata_dev_present(dev))) | 2169 | if (unlikely(!ata_dev_present(dev))) |
| 2170 | return NULL; | 2170 | return NULL; |
| 2171 | 2171 | ||
| 2172 | if (!atapi_enabled) { | 2172 | if (!atapi_enabled || (ap->flags & ATA_FLAG_NO_ATAPI)) { |
| 2173 | if (unlikely(dev->class == ATA_DEV_ATAPI)) | 2173 | if (unlikely(dev->class == ATA_DEV_ATAPI)) { |
| 2174 | printk(KERN_WARNING "ata%u(%u): WARNING: ATAPI is %s, device ignored.\n", | ||
| 2175 | ap->id, dev->devno, atapi_enabled ? "not supported with this driver" : "disabled"); | ||
| 2174 | return NULL; | 2176 | return NULL; |
| 2177 | } | ||
| 2175 | } | 2178 | } |
| 2176 | 2179 | ||
| 2177 | return dev; | 2180 | return dev; |
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c index 3e7866b51ac..b2bf16a9bf4 100644 --- a/drivers/scsi/sata_mv.c +++ b/drivers/scsi/sata_mv.c | |||
| @@ -86,7 +86,8 @@ enum { | |||
| 86 | MV_FLAG_DUAL_HC = (1 << 30), /* two SATA Host Controllers */ | 86 | MV_FLAG_DUAL_HC = (1 << 30), /* two SATA Host Controllers */ |
| 87 | MV_FLAG_IRQ_COALESCE = (1 << 29), /* IRQ coalescing capability */ | 87 | MV_FLAG_IRQ_COALESCE = (1 << 29), /* IRQ coalescing capability */ |
| 88 | MV_COMMON_FLAGS = (ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | | 88 | MV_COMMON_FLAGS = (ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | |
| 89 | ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO), | 89 | ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO | |
| 90 | ATA_FLAG_NO_ATAPI), | ||
| 90 | MV_6XXX_FLAGS = MV_FLAG_IRQ_COALESCE, | 91 | MV_6XXX_FLAGS = MV_FLAG_IRQ_COALESCE, |
| 91 | 92 | ||
| 92 | CRQB_FLAG_READ = (1 << 0), | 93 | CRQB_FLAG_READ = (1 << 0), |
diff --git a/drivers/scsi/sata_promise.c b/drivers/scsi/sata_promise.c index e2e146a14f9..da7fa04b8a7 100644 --- a/drivers/scsi/sata_promise.c +++ b/drivers/scsi/sata_promise.c | |||
| @@ -70,6 +70,9 @@ enum { | |||
| 70 | PDC_HAS_PATA = (1 << 1), /* PDC20375 has PATA */ | 70 | PDC_HAS_PATA = (1 << 1), /* PDC20375 has PATA */ |
| 71 | 71 | ||
| 72 | PDC_RESET = (1 << 11), /* HDMA reset */ | 72 | PDC_RESET = (1 << 11), /* HDMA reset */ |
| 73 | |||
| 74 | PDC_COMMON_FLAGS = ATA_FLAG_NO_LEGACY | ATA_FLAG_SRST | | ||
| 75 | ATA_FLAG_MMIO | ATA_FLAG_NO_ATAPI, | ||
| 73 | }; | 76 | }; |
| 74 | 77 | ||
| 75 | 78 | ||
| @@ -162,8 +165,7 @@ static const struct ata_port_info pdc_port_info[] = { | |||
| 162 | /* board_2037x */ | 165 | /* board_2037x */ |
| 163 | { | 166 | { |
| 164 | .sht = &pdc_ata_sht, | 167 | .sht = &pdc_ata_sht, |
| 165 | .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | | 168 | .host_flags = PDC_COMMON_FLAGS | ATA_FLAG_SATA, |
| 166 | ATA_FLAG_SRST | ATA_FLAG_MMIO, | ||
| 167 | .pio_mask = 0x1f, /* pio0-4 */ | 169 | .pio_mask = 0x1f, /* pio0-4 */ |
| 168 | .mwdma_mask = 0x07, /* mwdma0-2 */ | 170 | .mwdma_mask = 0x07, /* mwdma0-2 */ |
| 169 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ | 171 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ |
| @@ -173,8 +175,7 @@ static const struct ata_port_info pdc_port_info[] = { | |||
| 173 | /* board_20319 */ | 175 | /* board_20319 */ |
| 174 | { | 176 | { |
| 175 | .sht = &pdc_ata_sht, | 177 | .sht = &pdc_ata_sht, |
| 176 | .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | | 178 | .host_flags = PDC_COMMON_FLAGS | ATA_FLAG_SATA, |
| 177 | ATA_FLAG_SRST | ATA_FLAG_MMIO, | ||
| 178 | .pio_mask = 0x1f, /* pio0-4 */ | 179 | .pio_mask = 0x1f, /* pio0-4 */ |
| 179 | .mwdma_mask = 0x07, /* mwdma0-2 */ | 180 | .mwdma_mask = 0x07, /* mwdma0-2 */ |
| 180 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ | 181 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ |
| @@ -184,8 +185,7 @@ static const struct ata_port_info pdc_port_info[] = { | |||
| 184 | /* board_20619 */ | 185 | /* board_20619 */ |
| 185 | { | 186 | { |
| 186 | .sht = &pdc_ata_sht, | 187 | .sht = &pdc_ata_sht, |
| 187 | .host_flags = ATA_FLAG_NO_LEGACY | ATA_FLAG_SRST | | 188 | .host_flags = PDC_COMMON_FLAGS | ATA_FLAG_SLAVE_POSS, |
| 188 | ATA_FLAG_MMIO | ATA_FLAG_SLAVE_POSS, | ||
| 189 | .pio_mask = 0x1f, /* pio0-4 */ | 189 | .pio_mask = 0x1f, /* pio0-4 */ |
| 190 | .mwdma_mask = 0x07, /* mwdma0-2 */ | 190 | .mwdma_mask = 0x07, /* mwdma0-2 */ |
| 191 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ | 191 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ |
diff --git a/drivers/scsi/sata_sx4.c b/drivers/scsi/sata_sx4.c index 58da854a7c6..94b253b80da 100644 --- a/drivers/scsi/sata_sx4.c +++ b/drivers/scsi/sata_sx4.c | |||
| @@ -220,7 +220,8 @@ static const struct ata_port_info pdc_port_info[] = { | |||
| 220 | { | 220 | { |
| 221 | .sht = &pdc_sata_sht, | 221 | .sht = &pdc_sata_sht, |
| 222 | .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | | 222 | .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | |
| 223 | ATA_FLAG_SRST | ATA_FLAG_MMIO, | 223 | ATA_FLAG_SRST | ATA_FLAG_MMIO | |
| 224 | ATA_FLAG_NO_ATAPI, | ||
| 224 | .pio_mask = 0x1f, /* pio0-4 */ | 225 | .pio_mask = 0x1f, /* pio0-4 */ |
| 225 | .mwdma_mask = 0x07, /* mwdma0-2 */ | 226 | .mwdma_mask = 0x07, /* mwdma0-2 */ |
| 226 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ | 227 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ |
diff --git a/include/asm-ia64/sal.h b/include/asm-ia64/sal.h index 29df88bdd2b..313cad0628d 100644 --- a/include/asm-ia64/sal.h +++ b/include/asm-ia64/sal.h | |||
| @@ -320,7 +320,8 @@ typedef struct sal_log_timestamp { | |||
| 320 | typedef struct sal_log_record_header { | 320 | typedef struct sal_log_record_header { |
| 321 | u64 id; /* Unique monotonically increasing ID */ | 321 | u64 id; /* Unique monotonically increasing ID */ |
| 322 | sal_log_revision_t revision; /* Major and Minor revision of header */ | 322 | sal_log_revision_t revision; /* Major and Minor revision of header */ |
| 323 | u16 severity; /* Error Severity */ | 323 | u8 severity; /* Error Severity */ |
| 324 | u8 validation_bits; /* 0: platform_guid, 1: !timestamp */ | ||
| 324 | u32 len; /* Length of this error log in bytes */ | 325 | u32 len; /* Length of this error log in bytes */ |
| 325 | sal_log_timestamp_t timestamp; /* Timestamp */ | 326 | sal_log_timestamp_t timestamp; /* Timestamp */ |
| 326 | efi_guid_t platform_guid; /* Unique OEM Platform ID */ | 327 | efi_guid_t platform_guid; /* Unique OEM Platform ID */ |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 46337e71613..e828e172ccb 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -122,6 +122,7 @@ enum { | |||
| 122 | ATA_FLAG_NOINTR = (1 << 9), /* FIXME: Remove this once | 122 | ATA_FLAG_NOINTR = (1 << 9), /* FIXME: Remove this once |
| 123 | * proper HSM is in place. */ | 123 | * proper HSM is in place. */ |
| 124 | ATA_FLAG_DEBUGMSG = (1 << 10), | 124 | ATA_FLAG_DEBUGMSG = (1 << 10), |
| 125 | ATA_FLAG_NO_ATAPI = (1 << 11), /* No ATAPI support */ | ||
| 125 | 126 | ||
| 126 | ATA_QCFLAG_ACTIVE = (1 << 1), /* cmd not yet ack'd to scsi lyer */ | 127 | ATA_QCFLAG_ACTIVE = (1 << 1), /* cmd not yet ack'd to scsi lyer */ |
| 127 | ATA_QCFLAG_SG = (1 << 3), /* have s/g table? */ | 128 | ATA_QCFLAG_SG = (1 << 3), /* have s/g table? */ |
diff --git a/init/Kconfig b/init/Kconfig index ea097e0a9c0..be74adb389e 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
| @@ -206,7 +206,7 @@ config HOTPLUG | |||
| 206 | outside the kernel tree does. Such modules require Y here. | 206 | outside the kernel tree does. Such modules require Y here. |
| 207 | 207 | ||
| 208 | config KOBJECT_UEVENT | 208 | config KOBJECT_UEVENT |
| 209 | bool "Kernel Userspace Events" | 209 | bool "Kernel Userspace Events" if EMBEDDED |
| 210 | depends on NET | 210 | depends on NET |
| 211 | default y | 211 | default y |
| 212 | help | 212 | help |
| @@ -339,7 +339,7 @@ config EPOLL | |||
| 339 | support for epoll family of system calls. | 339 | support for epoll family of system calls. |
| 340 | 340 | ||
| 341 | config CC_OPTIMIZE_FOR_SIZE | 341 | config CC_OPTIMIZE_FOR_SIZE |
| 342 | bool "Optimize for size" if EMBEDDED | 342 | bool "Optimize for size" |
| 343 | default y if ARM || H8300 | 343 | default y if ARM || H8300 |
| 344 | help | 344 | help |
| 345 | Enabling this option will pass "-Os" instead of "-O2" to gcc | 345 | Enabling this option will pass "-Os" instead of "-O2" to gcc |
