2.6.x libata updates
PATCH 1/1 2.6.x libata updates
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git
to receive the following updates:
drivers/scsi/ahci.c | 2 +- drivers/scsi/ata_piix.c | 2 +- drivers/scsi/libata-core.c | 2 ++ drivers/scsi/libata-scsi.c | 2 ++ drivers/scsi/pdc_adma.c | 2 +- drivers/scsi/sata_mv.c | 4 +++- drivers/scsi/sata_nv.c | 2 +- drivers/scsi/sata_promise.c | 2 +- drivers/scsi/sata_qstor.c | 2 +- drivers/scsi/sata_sil.c | 2 +- drivers/scsi/sata_sil24.c | 2 +- drivers/scsi/sata_sis.c | 2 +- drivers/scsi/sata_svw.c | 2 +- drivers/scsi/sata_sx4.c | 2 +- drivers/scsi/sata_uli.c | 2 +- drivers/scsi/sata_via.c | 2 +- drivers/scsi/sata_vsc.c | 2 +- include/linux/libata.h | 2 ++ 18 files changed, 23 insertions(+), 15 deletions(-)
Alan Cox:
libata: Note a nasty ATA quirk
libata: propogate host private data from probe function
Andrew Morton:
libata.h needs dma-mapping.h
Jeff Garzik:
[libata] constify PCI ID table in several drivers [libata sata_mv] add Adaptec 1420SA PCI ID
drivers/scsi/ahci.c +1 -1
@@ -255,7 +255,7 @@ static struct ata_port_info ahci_port_in }, }; -static struct pci_device_id ahci_pci_tbl[] = { +static const struct pci_device_id ahci_pci_tbl[] = { {PCI_VENDOR_ID_INTEL ,0x2652 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , board_ahci },/* ICH6 */ {PCI_VENDOR_ID_INTEL ,0x2653 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,
drivers/scsi/ata_piix.c +1 -1
@@ -95,7 +95,7 @@ static void piix_set_dmamode (struct atastatic unsigned int in_module_init =1 ; -static struct pci_device_id piix_pci_tbl[] = { +static const struct pci_device_id piix_pci_tbl[] = { #ifdef ATA_ENABLE_PATA {0x8086 ,0x7111 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , piix4_pata }, { 0x8086, 0x24db, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_pata },
drivers/scsi/libata-core.c +2 -0
@@ -4563,6 +4563,7 @@ ata_pci_init_native_mode(struct pci_dev probe_ent->irq = pdev->irq; probe_ent->irq_flags =SA_SHIRQ ; + probe_ent->private_data = port[0 ]->private_data;if (ports &ATA_PORT_PRIMARY ) { probe_ent->port[p].cmd_addr =pci_resource_start (pdev,0 );
@@ -4599,6 +4600,7 @@ static struct ata_probe_ent *ata_pci_ini probe_ent->legacy_mode =1 ; probe_ent->n_ports =1 ; probe_ent->hard_port_no = port_num; + probe_ent->private_data = port->private_data;switch (port_num) {
drivers/scsi/libata-scsi.c +2 -0
@@ -1129,6 +1129,8 @@ static unsigned int ata_scsi_rw_xlat(str* length 0 means transfer 0 block of data. * However, for ATA R/W commands, sector count 0 means * 256 or 65536 sectors, not 0 sectors as in SCSI. +* +* WARNING: one or two older ATA drives treat 0 as 0... */ goto nothing_to_do;
drivers/scsi/pdc_adma.c +1 -1
@@ -190,7 +190,7 @@ static struct ata_port_info adma_port_in }, }; -static struct pci_device_id adma_ata_pci_tbl[] = { +static const struct pci_device_id adma_ata_pci_tbl[] = { {PCI_VENDOR_ID_PDC ,0x1841 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , board_1841_idx },
drivers/scsi/sata_mv.c +3 -1
@@ -349,7 +349,7 @@ static struct ata_port_info mv_port_info }, }; -static struct pci_device_id mv_pci_tbl[] = { +static const struct pci_device_id mv_pci_tbl[] = { {PCI_DEVICE (PCI_VENDOR_ID_MARVELL ,0x5040 ),0 ,0 , chip_504x}, {PCI_DEVICE (PCI_VENDOR_ID_MARVELL ,0x5041 ),0 ,0 , chip_504x}, {PCI_DEVICE (PCI_VENDOR_ID_MARVELL ,0x5080 ),0 ,0 , chip_508x},
@@ -359,6 +359,8 @@ static struct pci_device_id mv_pci_tbl[] {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x6041), 0, 0, chip_604x}, {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x6080), 0, 0, chip_608x}, {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x6081), 0, 0, chip_608x}, + + {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x0241), 0, 0, chip_604x}, {} /* terminate list */ };
drivers/scsi/sata_nv.c +1 -1
@@ -137,7 +137,7 @@ enum nv_host_typeCK804 }; -static struct pci_device_id nv_pci_tbl[] = { +static const struct pci_device_id nv_pci_tbl[] = { {PCI_VENDOR_ID_NVIDIA ,PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,NFORCE2 }, {PCI_VENDOR_ID_NVIDIA ,PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA ,
drivers/scsi/sata_promise.c +1 -1
@@ -193,7 +193,7 @@ static struct ata_port_info pdc_port_inf }, }; -static struct pci_device_id pdc_ata_pci_tbl[] = { +static const struct pci_device_id pdc_ata_pci_tbl[] = { {PCI_VENDOR_ID_PROMISE ,0x3371 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , board_2037x }, {PCI_VENDOR_ID_PROMISE ,0x3570 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,
drivers/scsi/sata_qstor.c +1 -1
@@ -184,7 +184,7 @@ static struct ata_port_info qs_port_info }, }; -static struct pci_device_id qs_ata_pci_tbl[] = { +static const struct pci_device_id qs_ata_pci_tbl[] = { {PCI_VENDOR_ID_PDC ,0x2068 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , board_2068_idx },
drivers/scsi/sata_sil.c +1 -1
@@ -87,7 +87,7 @@ static void sil_scr_write (struct ata_postatic void sil_post_set_mode (struct ata_port *ap); -static struct pci_device_id sil_pci_tbl[] = { +static const struct pci_device_id sil_pci_tbl[] = { {0x1095 ,0x3112 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , sil_3112_m15w }, {0x1095 ,0x0240 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , sil_3112_m15w }, {0x1095 ,0x3512 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , sil_3112 },
drivers/scsi/sata_sil24.c +1 -1
@@ -240,7 +240,7 @@ static void sil24_port_stop(struct ata_pstatic void sil24_host_stop (struct ata_host_set *host_set);static int sil24_init_one (struct pci_dev *pdev,const struct pci_device_id *ent); -static struct pci_device_id sil24_pci_tbl[] = { +static const struct pci_device_id sil24_pci_tbl[] = { {0x1095 ,0x3124 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,BID_SIL3124 }, {0x1095 ,0x3132 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,BID_SIL3132 }, {0x1095 ,0x3131 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,BID_SIL3131 },
drivers/scsi/sata_sis.c +1 -1
@@ -67,7 +67,7 @@ static int sis_init_one (struct pci_devstatic u32 sis_scr_read (struct ata_port *ap,unsigned int sc_reg);static void sis_scr_write (struct ata_port *ap,unsigned int sc_reg,u32 val); -static struct pci_device_id sis_pci_tbl[] = { +static const struct pci_device_id sis_pci_tbl[] = { {PCI_VENDOR_ID_SI ,0x180 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , sis_180 }, {PCI_VENDOR_ID_SI ,0x181 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , sis_180 }, {PCI_VENDOR_ID_SI ,0x182 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , sis_180 },
drivers/scsi/sata_svw.c +1 -1
@@ -466,7 +466,7 @@ err_out:* 0x24a is device ID for BCM5785 (aka HT1000) HT southbridge integrated SATA * controller * */ -static struct pci_device_id k2_sata_pci_tbl[] = { +static const struct pci_device_id k2_sata_pci_tbl[] = { {0x1166 ,0x0240 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,4 }, {0x1166 ,0x0241 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,4 }, {0x1166 ,0x0242 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,8 },
drivers/scsi/sata_sx4.c +1 -1
@@ -229,7 +229,7 @@ static struct ata_port_info pdc_port_inf }; -static struct pci_device_id pdc_sata_pci_tbl[] = { +static const struct pci_device_id pdc_sata_pci_tbl[] = { {PCI_VENDOR_ID_PROMISE ,0x6622 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , board_20621 }, { }/* terminate list */
drivers/scsi/sata_uli.c +1 -1
@@ -55,7 +55,7 @@ static int uli_init_one (struct pci_devstatic u32 uli_scr_read (struct ata_port *ap,unsigned int sc_reg);static void uli_scr_write (struct ata_port *ap,unsigned int sc_reg,u32 val); -static struct pci_device_id uli_pci_tbl[] = { +static const struct pci_device_id uli_pci_tbl[] = { {PCI_VENDOR_ID_AL ,0x5289 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , uli_5289 }, {PCI_VENDOR_ID_AL ,0x5287 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , uli_5287 }, {PCI_VENDOR_ID_AL ,0x5281 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , uli_5281 },
drivers/scsi/sata_via.c +1 -1
@@ -75,7 +75,7 @@ static int svia_init_one (struct pci_devstatic u32 svia_scr_read (struct ata_port *ap,unsigned int sc_reg);static void svia_scr_write (struct ata_port *ap,unsigned int sc_reg,u32 val); -static struct pci_device_id svia_pci_tbl[] = { +static const struct pci_device_id svia_pci_tbl[] = { {0x1106 ,0x3149 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , vt6420 }, {0x1106 ,0x3249 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , vt6421 },
drivers/scsi/sata_vsc.c +1 -1
@@ -400,7 +400,7 @@ err_out:* 0x8086/0x3200 is the Intel 31244, which is supposed to be identical * compatibility is untested as of yet */ -static struct pci_device_id vsc_sata_pci_tbl[] = { +static const struct pci_device_id vsc_sata_pci_tbl[] = { {0x1725 ,0x7174 ,PCI_ANY_ID ,PCI_ANY_ID ,0x10600 ,0xFFFFFF ,0 }, {0x8086 ,0x3200 ,PCI_ANY_ID ,PCI_ANY_ID ,0x10600 ,0xFFFFFF ,0 }, { }
include/linux/libata.h +2 -0
@@ -29,6 +29,7 @@#include <linux/delay.h> #include <linux/interrupt.h> #include <linux/pci.h> +#include <linux/dma-mapping.h> #include <asm/io.h> #include <linux/ata.h> #include <linux/workqueue.h>
@@ -404,6 +405,7 @@ struct ata_port_info {unsigned long mwdma_mask;unsigned long udma_mask;const struct ata_port_operations *port_ops; +void *private_data; };struct ata_timing {