* [PATCH 2.6.22-rc4] libata: SiS180 pata support
@ 2007-06-05 23:04 Uwe Koziolek
2007-06-05 23:08 ` Jeff Garzik
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Uwe Koziolek @ 2007-06-05 23:04 UTC (permalink / raw)
To: Alan, Jeff Garzik; +Cc: linux-ide
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 <uwe.koziolek@gmx.net>
--- a/drivers/ata/pata_sis.c 2007-06-05 22:17:10.000000000 +0200
+++ b/drivers/ata/pata_sis.c 2007-06-06 00:06:08.000000000 +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;
return ata_std_prereset(ap, deadline);
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support
2007-06-05 23:04 [PATCH 2.6.22-rc4] libata: SiS180 pata support Uwe Koziolek
@ 2007-06-05 23:08 ` Jeff Garzik
2007-06-05 23:12 ` Alan Cox
2007-06-05 23:19 ` Jeff Garzik
2 siblings, 0 replies; 8+ messages in thread
From: Jeff Garzik @ 2007-06-05 23:08 UTC (permalink / raw)
To: Uwe Koziolek; +Cc: Alan, linux-ide
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 <uwe.koziolek@gmx.net>
>
> --- a/drivers/ata/pata_sis.c 2007-06-05 22:17:10.000000000 +0200
> +++ b/drivers/ata/pata_sis.c 2007-06-06 00:06:08.000000000 +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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support
2007-06-05 23:04 [PATCH 2.6.22-rc4] libata: SiS180 pata support Uwe Koziolek
2007-06-05 23:08 ` Jeff Garzik
@ 2007-06-05 23:12 ` Alan Cox
2007-06-05 23:19 ` Jeff Garzik
2 siblings, 0 replies; 8+ messages in thread
From: Alan Cox @ 2007-06-05 23:12 UTC (permalink / raw)
To: Uwe Koziolek; +Cc: Jeff Garzik, linux-ide
On Wed, 6 Jun 2007 01:04:17 +0200
Uwe Koziolek <uwe.koziolek@gmx.net> 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 <uwe.koziolek@gmx.net>
Acked-by: Alan Cox <alan@redhat.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support
2007-06-05 23:04 [PATCH 2.6.22-rc4] libata: SiS180 pata support Uwe Koziolek
2007-06-05 23:08 ` Jeff Garzik
2007-06-05 23:12 ` Alan Cox
@ 2007-06-05 23:19 ` Jeff Garzik
2007-06-28 21:02 ` Uwe Koziolek
2 siblings, 1 reply; 8+ messages in thread
From: Jeff Garzik @ 2007-06-05 23:19 UTC (permalink / raw)
To: Uwe Koziolek; +Cc: Alan, linux-ide
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;
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support
2007-06-05 23:19 ` Jeff Garzik
@ 2007-06-28 21:02 ` Uwe Koziolek
2007-06-28 21:17 ` Jeff Garzik
0 siblings, 1 reply; 8+ messages in thread
From: Uwe Koziolek @ 2007-06-28 21:02 UTC (permalink / raw)
To: Jeff Garzik; +Cc: Alan, linux-ide
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support
2007-06-28 21:02 ` Uwe Koziolek
@ 2007-06-28 21:17 ` Jeff Garzik
2007-06-28 21:36 ` Uwe Koziolek
0 siblings, 1 reply; 8+ messages in thread
From: Jeff Garzik @ 2007-06-28 21:17 UTC (permalink / raw)
To: Uwe Koziolek; +Cc: Alan, linux-ide
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support
2007-06-28 21:17 ` Jeff Garzik
@ 2007-06-28 21:36 ` Uwe Koziolek
2007-06-29 10:57 ` Jeff Garzik
0 siblings, 1 reply; 8+ messages in thread
From: Uwe Koziolek @ 2007-06-28 21:36 UTC (permalink / raw)
To: Jeff Garzik; +Cc: Alan, linux-ide
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2.6.22-rc4] libata: SiS180 pata support
2007-06-28 21:36 ` Uwe Koziolek
@ 2007-06-29 10:57 ` Jeff Garzik
0 siblings, 0 replies; 8+ messages in thread
From: Jeff Garzik @ 2007-06-29 10:57 UTC (permalink / raw)
To: Uwe Koziolek; +Cc: Alan, linux-ide
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
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2007-06-29 10:57 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-05 23:04 [PATCH 2.6.22-rc4] libata: SiS180 pata support Uwe Koziolek
2007-06-05 23:08 ` Jeff Garzik
2007-06-05 23:12 ` Alan Cox
2007-06-05 23:19 ` Jeff Garzik
2007-06-28 21:02 ` Uwe Koziolek
2007-06-28 21:17 ` Jeff Garzik
2007-06-28 21:36 ` Uwe Koziolek
2007-06-29 10:57 ` Jeff Garzik
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).