* [PATCH 2.6.22-rc4]: libata: PATA-mode fixes for sis_sata
@ 2007-06-14 21:40 Uwe Koziolek
2007-07-02 14:20 ` Jeff Garzik
2007-07-16 2:34 ` yulin
0 siblings, 2 replies; 5+ messages in thread
From: Uwe Koziolek @ 2007-06-14 21:40 UTC (permalink / raw)
To: Jeff Garzik, Alan; +Cc: linux-ide, yulin, micha.biermann
Changed PATA handler for PATA-ports used by sata_sis.
This patch was originally submitted by Jeff Garzik.
Added PCI-ID 1180 for SiS966 Controller in pata_sis.
The 1180 mode is fully compatible to other SiS PATA-controller.
The PCI-ID 1183 is SATA in PATA-emulation, but not fully compatible
to SiS5513/5518. sata_sis.c is forwarding this ID to pata_sis.
1183 is not working if simply added to pata_sis.
This handling fixes issues with SiS968.
Signed-off-by: Uwe Koziolek <uwe.koziolek@gmx.net>
--- a/drivers/ata/pata_sis.c 2007-06-14 22:41:34.000000000 +0200
+++ b/drivers/ata/pata_sis.c 2007-06-12 22:15:04.000000000 +0200
@@ -560,6 +560,40 @@
.port_start = ata_port_start,
};
+static const struct ata_port_operations sis_133_for_sata_ops = {
+ .port_disable = ata_port_disable,
+ .set_piomode = sis_133_set_piomode,
+ .set_dmamode = sis_133_set_dmamode,
+ .mode_filter = ata_pci_default_filter,
+
+ .tf_load = ata_tf_load,
+ .tf_read = ata_tf_read,
+ .check_status = ata_check_status,
+ .exec_command = ata_exec_command,
+ .dev_select = ata_std_dev_select,
+
+ .freeze = ata_bmdma_freeze,
+ .thaw = ata_bmdma_thaw,
+ .error_handler = ata_bmdma_error_handler,
+ .post_internal_cmd = ata_bmdma_post_internal_cmd,
+ .cable_detect = sis_133_cable_detect,
+
+ .bmdma_setup = ata_bmdma_setup,
+ .bmdma_start = ata_bmdma_start,
+ .bmdma_stop = ata_bmdma_stop,
+ .bmdma_status = ata_bmdma_status,
+ .qc_prep = ata_qc_prep,
+ .qc_issue = ata_qc_issue_prot,
+ .data_xfer = ata_data_xfer,
+
+ .irq_handler = ata_interrupt,
+ .irq_clear = ata_bmdma_irq_clear,
+ .irq_on = ata_irq_on,
+ .irq_ack = ata_irq_ack,
+
+ .port_start = ata_port_start,
+};
+
static const struct ata_port_operations sis_133_early_ops = {
.port_disable = ata_port_disable,
.set_piomode = sis_100_set_piomode,
@@ -733,13 +767,20 @@
.pio_mask = 0x1f, /* pio0-4 */
.port_ops = &sis_66_ops,
};
-const struct ata_port_info sis_info133 = {
+static const struct ata_port_info sis_info133 = {
.sht = &sis_sht,
.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST,
.pio_mask = 0x1f, /* pio0-4 */
.udma_mask = ATA_UDMA6,
.port_ops = &sis_133_ops,
};
+const struct ata_port_info sis_info133_for_sata = {
+ .sht = &sis_sht,
+ .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST,
+ .pio_mask = 0x1f, /* pio0-4 */
+ .udma_mask = ATA_UDMA6,
+ .port_ops = &sis_133_for_sata_ops,
+};
static const struct ata_port_info sis_info133_early = {
.sht = &sis_sht,
.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST,
@@ -749,7 +790,7 @@
};
/* Privately shared with the SiS180 SATA driver, not for use elsewhere */
-EXPORT_SYMBOL_GPL(sis_info133);
+EXPORT_SYMBOL_GPL(sis_info133_for_sata);
static void sis_fixup(struct pci_dev *pdev, struct sis_chipset *sis)
{
@@ -975,6 +1016,7 @@
static const struct pci_device_id sis_pci_tbl[] = {
{ PCI_VDEVICE(SI, 0x5513), }, /* SiS 5513 */
{ PCI_VDEVICE(SI, 0x5518), }, /* SiS 5518 */
+ { PCI_VDEVICE(SI, 0x1180), }, /* SiS 1180 */
{ }
};
--- a/drivers/ata/sata_sis.c 2007-06-14 22:41:34.000000000 +0200
+++ b/drivers/ata/sata_sis.c 2007-06-12 22:16:11.000000000 +0200
@@ -72,8 +72,8 @@
{ PCI_VDEVICE(SI, 0x0181), sis_180 }, /* SiS 964/180 */
{ PCI_VDEVICE(SI, 0x0182), sis_180 }, /* SiS 965/965L */
{ PCI_VDEVICE(SI, 0x0183), sis_180 }, /* SiS 965/965L */
- { PCI_VDEVICE(SI, 0x1182), sis_180 }, /* SiS 966/966L */
- { PCI_VDEVICE(SI, 0x1183), sis_180 }, /* SiS 966/966L */
+ { PCI_VDEVICE(SI, 0x1182), sis_180 }, /* SiS 966/680 */
+ { PCI_VDEVICE(SI, 0x1183), sis_180 }, /* SiS 966/966L/968/680 */
{ } /* terminate list */
};
@@ -161,7 +161,6 @@
case 0x0182:
case 0x0183:
case 0x1182:
- case 0x1183:
addr += SIS182_SATA1_OFS;
break;
}
@@ -183,8 +182,8 @@
pci_read_config_dword(pdev, cfg_addr, &val);
- if ((pdev->device == 0x0182) || (pdev->device == 0x0183) || (pdev->device == 0x1182) ||
- (pdev->device == 0x1183) || (pmr & SIS_PMR_COMBINED))
+ if ((pdev->device == 0x0182) || (pdev->device == 0x0183) ||
+ (pdev->device == 0x1182) || (pmr & SIS_PMR_COMBINED))
pci_read_config_dword(pdev, cfg_addr+0x10, &val2);
return (val|val2) & 0xfffffffb; /* avoid problems with powerdowned ports */
@@ -203,8 +202,8 @@
pci_write_config_dword(pdev, cfg_addr, val);
- if ((pdev->device == 0x0182) || (pdev->device == 0x0183) || (pdev->device == 0x1182) ||
- (pdev->device == 0x1183) || (pmr & SIS_PMR_COMBINED))
+ if ((pdev->device == 0x0182) || (pdev->device == 0x0183) ||
+ (pdev->device == 0x1182) || (pmr & SIS_PMR_COMBINED))
pci_write_config_dword(pdev, cfg_addr+0x10, val);
}
@@ -224,8 +223,8 @@
val = ioread32(ap->ioaddr.scr_addr + (sc_reg * 4));
- if ((pdev->device == 0x0182) || (pdev->device == 0x0183) || (pdev->device == 0x1182) ||
- (pdev->device == 0x1183) || (pmr & SIS_PMR_COMBINED))
+ if ((pdev->device == 0x0182) || (pdev->device == 0x0183) ||
+ (pdev->device == 0x1182) || (pmr & SIS_PMR_COMBINED))
val2 = ioread32(ap->ioaddr.scr_addr + (sc_reg * 4) + 0x10);
return (val | val2) & 0xfffffffb;
@@ -245,8 +244,8 @@
sis_scr_cfg_write(ap, sc_reg, val);
else {
iowrite32(val, ap->ioaddr.scr_addr + (sc_reg * 4));
- if ((pdev->device == 0x0182) || (pdev->device == 0x0183) || (pdev->device == 0x1182) ||
- (pdev->device == 0x1183) || (pmr & SIS_PMR_COMBINED))
+ if ((pdev->device == 0x0182) || (pdev->device == 0x0183) ||
+ (pdev->device == 0x1182) || (pmr & SIS_PMR_COMBINED))
iowrite32(val, ap->ioaddr.scr_addr + (sc_reg * 4)+0x10);
}
}
@@ -293,11 +292,11 @@
/* The PATA-handling is provided by pata_sis */
switch (pmr & 0x30) {
case 0x10:
- ppi[1] = &sis_info133;
+ ppi[1] = &sis_info133_for_sata;
break;
case 0x30:
- ppi[0] = &sis_info133;
+ ppi[0] = &sis_info133_for_sata;
break;
}
if ((pmr & SIS_PMR_COMBINED) == 0) {
@@ -324,14 +323,14 @@
break;
case 0x1182:
+ dev_printk(KERN_INFO, &pdev->dev, "Detected SiS 1182/966/680 SATA controller\n");
+ pi.flags |= ATA_FLAG_SLAVE_POSS;
+ break;
+
case 0x1183:
- pci_read_config_dword(pdev, 0x64, &val);
- if (val & 0x10000000) {
- dev_printk(KERN_INFO, &pdev->dev, "Detected SiS 1182/1183/966L SATA controller\n");
- } else {
- dev_printk(KERN_INFO, &pdev->dev, "Detected SiS 1182/1183/966 SATA controller\n");
- pi.flags |= ATA_FLAG_SLAVE_POSS;
- }
+ dev_printk(KERN_INFO, &pdev->dev, "Detected SiS 1183/966/966L/968/680 controller in PATA mode\n");
+ ppi[0] = &sis_info133_for_sata;
+ ppi[1] = &sis_info133_for_sata;
break;
}
--- a/drivers/ata/sis.h 2007-06-14 22:41:34.000000000 +0200
+++ b/drivers/ata/sis.h 2007-06-09 22:30:43.000000000 +0200
@@ -2,4 +2,4 @@
struct ata_port_info;
/* pata_sis.c */
-extern const struct ata_port_info sis_info133;
+extern const struct ata_port_info sis_info133_for_sata;
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH 2.6.22-rc4]: libata: PATA-mode fixes for sis_sata
2007-06-14 21:40 [PATCH 2.6.22-rc4]: libata: PATA-mode fixes for sis_sata Uwe Koziolek
@ 2007-07-02 14:20 ` Jeff Garzik
2007-07-16 2:34 ` yulin
1 sibling, 0 replies; 5+ messages in thread
From: Jeff Garzik @ 2007-07-02 14:20 UTC (permalink / raw)
To: Uwe Koziolek; +Cc: Alan, linux-ide, yulin, micha.biermann
Uwe Koziolek wrote:
> Changed PATA handler for PATA-ports used by sata_sis.
> This patch was originally submitted by Jeff Garzik.
>
> Added PCI-ID 1180 for SiS966 Controller in pata_sis.
> The 1180 mode is fully compatible to other SiS PATA-controller.
>
> The PCI-ID 1183 is SATA in PATA-emulation, but not fully compatible
> to SiS5513/5518. sata_sis.c is forwarding this ID to pata_sis.
> 1183 is not working if simply added to pata_sis.
> This handling fixes issues with SiS968.
>
> Signed-off-by: Uwe Koziolek <uwe.koziolek@gmx.net>
applied
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2.6.22-rc4]: libata: PATA-mode fixes for sis_sata
2007-06-14 21:40 [PATCH 2.6.22-rc4]: libata: PATA-mode fixes for sis_sata Uwe Koziolek
2007-07-02 14:20 ` Jeff Garzik
@ 2007-07-16 2:34 ` yulin
2007-07-16 9:04 ` Alan Cox
1 sibling, 1 reply; 5+ messages in thread
From: yulin @ 2007-07-16 2:34 UTC (permalink / raw)
To: Uwe Koziolek; +Cc: Jeff Garzik, Alan, linux-ide, micha.biermann
Hi,all,
I have a question about Generic int13h driver.
There is a message about it,
http://lists.freebsd.org/pipermail/freebsd-drivers/2007-May/000403.html.
Because our product is to maintain Windows Desktop in Linux, so it
requires the great compatibility of hardware. Now we have solved the
problem of display, but harddisk still is a problem.
The motherboards from OEM always have some problem, for example, the
same SiS671 motherboards from ASUS and FOXCONN have different phenomenon.
So one leader of our IT, who is a Windows expert, suggested we can use
int 13h and I/O in Linux. But int 13h just is used in real mode.
Can you give me some advice to persuade him? If it is feasible, can you
introduce me?
Even can you give some good solutions to solve the compatibility problem?
From YuLin
Uwe Koziolek 写道:
> Changed PATA handler for PATA-ports used by sata_sis.
> This patch was originally submitted by Jeff Garzik.
>
> Added PCI-ID 1180 for SiS966 Controller in pata_sis.
> The 1180 mode is fully compatible to other SiS PATA-controller.
>
> The PCI-ID 1183 is SATA in PATA-emulation, but not fully compatible
> to SiS5513/5518. sata_sis.c is forwarding this ID to pata_sis.
> 1183 is not working if simply added to pata_sis.
> This handling fixes issues with SiS968.
>
> Signed-off-by: Uwe Koziolek <uwe.koziolek@gmx.net>
>
> --- a/drivers/ata/pata_sis.c 2007-06-14 22:41:34.000000000 +0200
> +++ b/drivers/ata/pata_sis.c 2007-06-12 22:15:04.000000000 +0200
> @@ -560,6 +560,40 @@
> .port_start = ata_port_start,
> };
>
> +static const struct ata_port_operations sis_133_for_sata_ops = {
> + .port_disable = ata_port_disable,
> + .set_piomode = sis_133_set_piomode,
> + .set_dmamode = sis_133_set_dmamode,
> + .mode_filter = ata_pci_default_filter,
> +
> + .tf_load = ata_tf_load,
> + .tf_read = ata_tf_read,
> + .check_status = ata_check_status,
> + .exec_command = ata_exec_command,
> + .dev_select = ata_std_dev_select,
> +
> + .freeze = ata_bmdma_freeze,
> + .thaw = ata_bmdma_thaw,
> + .error_handler = ata_bmdma_error_handler,
> + .post_internal_cmd = ata_bmdma_post_internal_cmd,
> + .cable_detect = sis_133_cable_detect,
> +
> + .bmdma_setup = ata_bmdma_setup,
> + .bmdma_start = ata_bmdma_start,
> + .bmdma_stop = ata_bmdma_stop,
> + .bmdma_status = ata_bmdma_status,
> + .qc_prep = ata_qc_prep,
> + .qc_issue = ata_qc_issue_prot,
> + .data_xfer = ata_data_xfer,
> +
> + .irq_handler = ata_interrupt,
> + .irq_clear = ata_bmdma_irq_clear,
> + .irq_on = ata_irq_on,
> + .irq_ack = ata_irq_ack,
> +
> + .port_start = ata_port_start,
> +};
> +
> static const struct ata_port_operations sis_133_early_ops = {
> .port_disable = ata_port_disable,
> .set_piomode = sis_100_set_piomode,
> @@ -733,13 +767,20 @@
> .pio_mask = 0x1f, /* pio0-4 */
> .port_ops = &sis_66_ops,
> };
> -const struct ata_port_info sis_info133 = {
> +static const struct ata_port_info sis_info133 = {
> .sht = &sis_sht,
> .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST,
> .pio_mask = 0x1f, /* pio0-4 */
> .udma_mask = ATA_UDMA6,
> .port_ops = &sis_133_ops,
> };
> +const struct ata_port_info sis_info133_for_sata = {
> + .sht = &sis_sht,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST,
> + .pio_mask = 0x1f, /* pio0-4 */
> + .udma_mask = ATA_UDMA6,
> + .port_ops = &sis_133_for_sata_ops,
> +};
> static const struct ata_port_info sis_info133_early = {
> .sht = &sis_sht,
> .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST,
> @@ -749,7 +790,7 @@
> };
>
> /* Privately shared with the SiS180 SATA driver, not for use elsewhere */
> -EXPORT_SYMBOL_GPL(sis_info133);
> +EXPORT_SYMBOL_GPL(sis_info133_for_sata);
>
> static void sis_fixup(struct pci_dev *pdev, struct sis_chipset *sis)
> {
> @@ -975,6 +1016,7 @@
> static const struct pci_device_id sis_pci_tbl[] = {
> { PCI_VDEVICE(SI, 0x5513), }, /* SiS 5513 */
> { PCI_VDEVICE(SI, 0x5518), }, /* SiS 5518 */
> + { PCI_VDEVICE(SI, 0x1180), }, /* SiS 1180 */
>
> { }
> };
> --- a/drivers/ata/sata_sis.c 2007-06-14 22:41:34.000000000 +0200
> +++ b/drivers/ata/sata_sis.c 2007-06-12 22:16:11.000000000 +0200
> @@ -72,8 +72,8 @@
> { PCI_VDEVICE(SI, 0x0181), sis_180 }, /* SiS 964/180 */
> { PCI_VDEVICE(SI, 0x0182), sis_180 }, /* SiS 965/965L */
> { PCI_VDEVICE(SI, 0x0183), sis_180 }, /* SiS 965/965L */
> - { PCI_VDEVICE(SI, 0x1182), sis_180 }, /* SiS 966/966L */
> - { PCI_VDEVICE(SI, 0x1183), sis_180 }, /* SiS 966/966L */
> + { PCI_VDEVICE(SI, 0x1182), sis_180 }, /* SiS 966/680 */
> + { PCI_VDEVICE(SI, 0x1183), sis_180 }, /* SiS 966/966L/968/680 */
>
> { } /* terminate list */
> };
> @@ -161,7 +161,6 @@
> case 0x0182:
> case 0x0183:
> case 0x1182:
> - case 0x1183:
> addr += SIS182_SATA1_OFS;
> break;
> }
> @@ -183,8 +182,8 @@
>
> pci_read_config_dword(pdev, cfg_addr, &val);
>
> - if ((pdev->device == 0x0182) || (pdev->device == 0x0183) || (pdev->device == 0x1182) ||
> - (pdev->device == 0x1183) || (pmr & SIS_PMR_COMBINED))
> + if ((pdev->device == 0x0182) || (pdev->device == 0x0183) ||
> + (pdev->device == 0x1182) || (pmr & SIS_PMR_COMBINED))
> pci_read_config_dword(pdev, cfg_addr+0x10, &val2);
>
> return (val|val2) & 0xfffffffb; /* avoid problems with powerdowned ports */
> @@ -203,8 +202,8 @@
>
> pci_write_config_dword(pdev, cfg_addr, val);
>
> - if ((pdev->device == 0x0182) || (pdev->device == 0x0183) || (pdev->device == 0x1182) ||
> - (pdev->device == 0x1183) || (pmr & SIS_PMR_COMBINED))
> + if ((pdev->device == 0x0182) || (pdev->device == 0x0183) ||
> + (pdev->device == 0x1182) || (pmr & SIS_PMR_COMBINED))
> pci_write_config_dword(pdev, cfg_addr+0x10, val);
> }
>
> @@ -224,8 +223,8 @@
>
> val = ioread32(ap->ioaddr.scr_addr + (sc_reg * 4));
>
> - if ((pdev->device == 0x0182) || (pdev->device == 0x0183) || (pdev->device == 0x1182) ||
> - (pdev->device == 0x1183) || (pmr & SIS_PMR_COMBINED))
> + if ((pdev->device == 0x0182) || (pdev->device == 0x0183) ||
> + (pdev->device == 0x1182) || (pmr & SIS_PMR_COMBINED))
> val2 = ioread32(ap->ioaddr.scr_addr + (sc_reg * 4) + 0x10);
>
> return (val | val2) & 0xfffffffb;
> @@ -245,8 +244,8 @@
> sis_scr_cfg_write(ap, sc_reg, val);
> else {
> iowrite32(val, ap->ioaddr.scr_addr + (sc_reg * 4));
> - if ((pdev->device == 0x0182) || (pdev->device == 0x0183) || (pdev->device == 0x1182) ||
> - (pdev->device == 0x1183) || (pmr & SIS_PMR_COMBINED))
> + if ((pdev->device == 0x0182) || (pdev->device == 0x0183) ||
> + (pdev->device == 0x1182) || (pmr & SIS_PMR_COMBINED))
> iowrite32(val, ap->ioaddr.scr_addr + (sc_reg * 4)+0x10);
> }
> }
> @@ -293,11 +292,11 @@
> /* The PATA-handling is provided by pata_sis */
> switch (pmr & 0x30) {
> case 0x10:
> - ppi[1] = &sis_info133;
> + ppi[1] = &sis_info133_for_sata;
> break;
>
> case 0x30:
> - ppi[0] = &sis_info133;
> + ppi[0] = &sis_info133_for_sata;
> break;
> }
> if ((pmr & SIS_PMR_COMBINED) == 0) {
> @@ -324,14 +323,14 @@
> break;
>
> case 0x1182:
> + dev_printk(KERN_INFO, &pdev->dev, "Detected SiS 1182/966/680 SATA controller\n");
> + pi.flags |= ATA_FLAG_SLAVE_POSS;
> + break;
> +
> case 0x1183:
> - pci_read_config_dword(pdev, 0x64, &val);
> - if (val & 0x10000000) {
> - dev_printk(KERN_INFO, &pdev->dev, "Detected SiS 1182/1183/966L SATA controller\n");
> - } else {
> - dev_printk(KERN_INFO, &pdev->dev, "Detected SiS 1182/1183/966 SATA controller\n");
> - pi.flags |= ATA_FLAG_SLAVE_POSS;
> - }
> + dev_printk(KERN_INFO, &pdev->dev, "Detected SiS 1183/966/966L/968/680 controller in PATA mode\n");
> + ppi[0] = &sis_info133_for_sata;
> + ppi[1] = &sis_info133_for_sata;
> break;
> }
>
> --- a/drivers/ata/sis.h 2007-06-14 22:41:34.000000000 +0200
> +++ b/drivers/ata/sis.h 2007-06-09 22:30:43.000000000 +0200
> @@ -2,4 +2,4 @@
> struct ata_port_info;
>
> /* pata_sis.c */
> -extern const struct ata_port_info sis_info133;
> +extern const struct ata_port_info sis_info133_for_sata;
>
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH 2.6.22-rc4]: libata: PATA-mode fixes for sis_sata
2007-07-16 2:34 ` yulin
@ 2007-07-16 9:04 ` Alan Cox
2007-07-16 9:20 ` yulin
0 siblings, 1 reply; 5+ messages in thread
From: Alan Cox @ 2007-07-16 9:04 UTC (permalink / raw)
To: yulin; +Cc: Uwe Koziolek, Jeff Garzik, linux-ide, micha.biermann
> So one leader of our IT, who is a Windows expert, suggested we can use
> int 13h and I/O in Linux. But int 13h just is used in real mode.
>
> Can you give me some advice to persuade him? If it is feasible, can you
> introduce me?
int13 is real mode only, runs polled and 16bit with one command at a
time. As far as I know even Windows no longer uses it for anything but
booting.
> Even can you give some good solutions to solve the compatibility problem?
For hardware where we have info the right answer is to report bugs and
get them fixed (or indeed send fixes). For the more general case the
ata_generic driver will drive anything that is SFF8038i compliant and you
can just add PCI identifiers to it for anything you hit.
I am working on a generic ACPI driver to go with it for such cases.
Alan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2.6.22-rc4]: libata: PATA-mode fixes for sis_sata
2007-07-16 9:04 ` Alan Cox
@ 2007-07-16 9:20 ` yulin
0 siblings, 0 replies; 5+ messages in thread
From: yulin @ 2007-07-16 9:20 UTC (permalink / raw)
To: Alan Cox; +Cc: Uwe Koziolek, Jeff Garzik, linux-ide, micha.biermann
Alan Cox 写道:
>> So one leader of our IT, who is a Windows expert, suggested we can use
>> int 13h and I/O in Linux. But int 13h just is used in real mode.
>>
>> Can you give me some advice to persuade him? If it is feasible, can you
>> introduce me?
>>
>
> int13 is real mode only, runs polled and 16bit with one command at a
> time. As far as I know even Windows no longer uses it for anything but
> booting.
>
>
>> Even can you give some good solutions to solve the compatibility problem?
>>
>
> For hardware where we have info the right answer is to report bugs and
> get them fixed (or indeed send fixes). For the more general case the
> ata_generic driver will drive anything that is SFF8038i compliant and you
> can just add PCI identifiers to it for anything you hit.
>
> I am working on a generic ACPI driver to go with it for such cases.
>
> Alan
>
>
>
Thank you for your help and explanations.
I will do some research work on ata_generic driver. Can you give me some
advice or related information to do deeper research?
I alse found the problem of ACPI in our product, so we turn it off, but
always caused some other problems. So i think a generic ACPI driver will
be welcome.
And your mail is the best message received today before going home.
:)
From YuLin
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-07-16 9:16 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-14 21:40 [PATCH 2.6.22-rc4]: libata: PATA-mode fixes for sis_sata Uwe Koziolek
2007-07-02 14:20 ` Jeff Garzik
2007-07-16 2:34 ` yulin
2007-07-16 9:04 ` Alan Cox
2007-07-16 9:20 ` yulin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).