Uwe Koziolek wrote:
--- a/drivers/ata/sata_sis.c 2007-05-22 11:05:38.000000000 +0200
+++ b/drivers/ata/sata_sis.c 2007-05-23 00:24:28.000000000 +0200
@@ -255,7 +255,7 @@
{
static int printed_version;
struct ata_port_info pi = sis_port_info;
- const struct ata_port_info *ppi[] = { &pi, NULL };
+ const struct ata_port_info *ppi[] = { &pi, &pi };
struct ata_host *host;
u32 genctl, val;
u8 pmr;
applied this part
--- a/drivers/ata/pata_sis.c 2007-05-22 11:05:38.000000000 +0200
+++ b/drivers/ata/pata_sis.c 2007-05-25 07:50:50.000000000 +0200
@@ -146,7 +146,8 @@
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
- if (!pci_test_config_bits(pdev, &sis_enable_bits[ap->port_no]))
+ if ((pdev->device != 0x0180) && (pdev->device != 0x0181) &&
+ !pci_test_config_bits(pdev, &sis_enable_bits[ap->port_no]))
return -ENOENT;
return ata_std_prereset(ap, deadline);
I think you misunderstood what Alan and I were saying.
If you remove the enable-bits check, then logically, all the function
does is call ata_std_prereset. Thus, your error handler only needs to
the standard function for 0x180 and 0x181, ata_std_prereset() rather
than sis_pre_reset().
Further, once your ata_bmdma_drive_eh() has been reduced entirely to
calling standard functions, you need not use sis_error_handler() at all,
because _that_ has been reduced to ata_bmdma_error_handler().
As a result, the following line
.error_handler = ata_bmdma_error_handler,
is functionally equivalent to your patch, but without custom code to
produce that effect.
Jeff
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html