Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support

2007-06-29 Thread Jeff Garzik

Uwe Koziolek wrote:

Jeff Garzik wrote:
  

Jeff,
Did you have added  the patch you have  mailed on 06.06. anywhere or is
this patch an email only patch. And how to continue?

It's in my mbox queue, should be in my next "run"... :)

Jeff


I have 3 fixes that i want to add on top
- a compilation fix for your fix
- an additional PCI-ID
- a changed handling for SATA-devices in IDE-emulation mode, this fixes
issues for the SiS968

I have submitted these fixes 2 times in a single patch, but i can also
split the three fixes in separate patches
if wanted.


Easiest for me would be three separate patches (after which I can 
combine the first with the existing patch in my mbox).


Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support

2007-06-28 Thread Uwe Koziolek
Jeff Garzik wrote:
>>>   
>> Jeff,
>> Did you have added  the patch you have  mailed on 06.06. anywhere or is
>> this patch an email only patch. And how to continue?
>
> It's in my mbox queue, should be in my next "run"... :)
>
> Jeff
>
I have 3 fixes that i want to add on top
- a compilation fix for your fix
- an additional PCI-ID
- a changed handling for SATA-devices in IDE-emulation mode, this fixes
issues for the SiS968

I have submitted these fixes 2 times in a single patch, but i can also
split the three fixes in separate patches
if wanted.

Uwe


-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support

2007-06-28 Thread Jeff Garzik

Uwe Koziolek wrote:

Nevermind, I did it myself:

This ensures that we can easily make changes specific to the PATA port
on the newer SATA chips, and also does what I've been requesting -- use
the standard ata_bmdma_error_handler(), rather than creating custom code
that achieves the same effect.


diff --git a/drivers/ata/pata_sis.c b/drivers/ata/pata_sis.c
index ec3ae93..0752104 100644
--- a/drivers/ata/pata_sis.c
+++ b/drivers/ata/pata_sis.c
  

Jeff,
Did you have added  the patch you have  mailed on 06.06. anywhere or is
this patch an email only patch. And how to continue?


It's in my mbox queue, should be in my next "run"... :)

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support

2007-06-28 Thread Uwe Koziolek
Nevermind, I did it myself:
> This ensures that we can easily make changes specific to the PATA port
> on the newer SATA chips, and also does what I've been requesting -- use
> the standard ata_bmdma_error_handler(), rather than creating custom code
> that achieves the same effect.
>
>
> diff --git a/drivers/ata/pata_sis.c b/drivers/ata/pata_sis.c
> index ec3ae93..0752104 100644
> --- a/drivers/ata/pata_sis.c
> +++ b/drivers/ata/pata_sis.c
>   
Jeff,
Did you have added  the patch you have  mailed on 06.06. anywhere or is
this patch an email only patch. And how to continue?

Uwe
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support

2007-06-05 Thread Jeff Garzik

Nevermind, I did it myself:

This ensures that we can easily make changes specific to the PATA port
on the newer SATA chips, and also does what I've been requesting -- use
the standard ata_bmdma_error_handler(), rather than creating custom code
that achieves the same effect.


diff --git a/drivers/ata/pata_sis.c b/drivers/ata/pata_sis.c
index ec3ae93..0752104 100644
--- a/drivers/ata/pata_sis.c
+++ b/drivers/ata/pata_sis.c
@@ -560,6 +560,40 @@ static const struct ata_port_operations sis_133_ops = {
.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 @@ static const struct ata_port_info sis_info100_early = {
.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,
 };
+static 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 @@ static const struct ata_port_info sis_info133_early = {
 };
 
 /* 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)
 {
diff --git a/drivers/ata/sata_sis.c b/drivers/ata/sata_sis.c
index 221099d..40afa39 100644
--- a/drivers/ata/sata_sis.c
+++ b/drivers/ata/sata_sis.c
@@ -293,11 +293,11 @@ static int sis_init_one (struct pci_dev *pdev, const 
struct pci_device_id *ent)
/* 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) {
diff --git a/drivers/ata/sis.h b/drivers/ata/sis.h
index 0f2208d..f7f3eeb 100644
--- a/drivers/ata/sis.h
+++ b/drivers/ata/sis.h
@@ -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;
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support

2007-06-05 Thread Jeff Garzik
On Wed, Jun 06, 2007 at 01:04:17AM +0200, Uwe Koziolek wrote:
> the PATA-port of SiS180 controller does not support a drive present status
> in the pci configspace like the other SiS PATA controllers, check skipped.
> 
> Signed-off-by: Uwe Koziolek <[EMAIL PROTECTED]>
> 
> --- a/drivers/ata/pata_sis.c  2007-06-05 22:17:10.0 +0200
> +++ b/drivers/ata/pata_sis.c  2007-06-06 00:06:08.0 +0200
> @@ -130,6 +130,20 @@
>  
>  
>  /**
> + *   sis_enables_supported - Check if enable_bits are supported
> + *   @pdev: pci device
> + *
> + *   The combined PATA/SATA controller SiS180 does not support
> + *   the enable_bits in the PCI configspace
> + */
> +
> +static inline int sis_enables_supported(struct pci_dev *pdev)
> +{
> + return ((pdev->device != 0x0180) && (pdev->device != 0x0181));
> +}
> +
> +
> +/**
>   *   sis_pre_reset   -   probe begin
>   *   @ap: ATA port
>   *   @deadline: deadline jiffies for the operation
> @@ -146,7 +160,8 @@
>  
>   struct pci_dev *pdev = to_pci_dev(ap->host->dev);
>  
> - if (!pci_test_config_bits(pdev, &sis_enable_bits[ap->port_no]))
> + if (sis_enables_supported(pdev) && 
> + !pci_test_config_bits(pdev, &sis_enable_bits[ap->port_no]))
>   return -ENOENT;

Should work, but please split up the operations like I've repeatedly
requested.

For the devices where enable_bits are not supported, you can use the
standard error handler.

Let me know if this needs further explanation.

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support

2007-06-05 Thread Alan Cox
On Wed, 6 Jun 2007 01:04:17 +0200
Uwe Koziolek <[EMAIL PROTECTED]> wrote:

> the PATA-port of SiS180 controller does not support a drive present status
> in the pci configspace like the other SiS PATA controllers, check skipped.
> 
> Signed-off-by: Uwe Koziolek <[EMAIL PROTECTED]>

Acked-by: Alan Cox <[EMAIL PROTECTED]>

-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html