* [PATCH 1/2] hpt366: add hpt3xx_disable_fast_irq() helper
@ 2008-08-02 17:15 Bartlomiej Zolnierkiewicz
2008-10-14 20:51 ` Sergei Shtylyov
0 siblings, 1 reply; 5+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2008-08-02 17:15 UTC (permalink / raw)
To: linux-ide; +Cc: linux-kernel, Sergei Shtylyov
* Factor out disabling of "fast interrupt" prediction from
init_hwif_hpt366() to hpt3xx_disable_fast_irq() helper.
* Use hpt3xx_disable_fast_irq() in ->init_chipset instead of
->init_hwif method.
This is a preparation for adding proper PCI PM support.
While at it:
* Cache chip type in chip_type variable in hpt3xx_disable_fast_irq().
There should be no functional changes caused by this patch.
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/ide/pci/hpt366.c | 58 ++++++++++++++++++++++++++---------------------
1 file changed, 33 insertions(+), 25 deletions(-)
Index: b/drivers/ide/pci/hpt366.c
===================================================================
--- a/drivers/ide/pci/hpt366.c
+++ b/drivers/ide/pci/hpt366.c
@@ -969,6 +969,36 @@ static int __devinit hpt37x_calibrate_dp
return 1;
}
+static void __devinit hpt3xx_disable_fast_irq(struct pci_dev *dev, u8 mcr_addr)
+{
+ struct ide_host *host = pci_get_drvdata(dev);
+ struct hpt_info *info = host->host_priv + (&dev->dev == host->dev[1]);
+ u8 chip_type = info->chip_type;
+ u8 new_mcr, old_mcr = 0;
+
+ /*
+ * Disable the "fast interrupt" prediction. Don't hold off
+ * on interrupts. (== 0x01 despite what the docs say)
+ */
+ pci_read_config_byte(dev, mcr_addr + 1, &old_mcr);
+
+ if (chip_type >= HPT374)
+ new_mcr = old_mcr & ~0x07;
+ else if (chip_type >= HPT370) {
+ new_mcr = old_mcr;
+ new_mcr &= ~0x02;
+#ifdef HPT_DELAY_INTERRUPT
+ new_mcr &= ~0x01;
+#else
+ new_mcr |= 0x01;
+#endif
+ } else /* HPT366 and HPT368 */
+ new_mcr = old_mcr & ~0x80;
+
+ if (new_mcr != old_mcr)
+ pci_write_config_byte(dev, mcr_addr + 1, new_mcr);
+}
+
static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev)
{
unsigned long io_base = pci_resource_start(dev, 4);
@@ -1207,9 +1237,11 @@ static unsigned int __devinit init_chips
* NOTE: This register is only writeable via I/O space.
*/
if (chip_type == HPT371N && clock == ATA_CLOCK_66MHZ)
-
outb(inb(io_base + 0x9c) | 0x04, io_base + 0x9c);
+ hpt3xx_disable_fast_irq(dev, 0x50);
+ hpt3xx_disable_fast_irq(dev, 0x54);
+
return dev->irq;
}
@@ -1265,7 +1297,6 @@ static void __devinit init_hwif_hpt366(i
struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
int serialize = HPT_SERIALIZE_IO;
u8 chip_type = info->chip_type;
- u8 new_mcr, old_mcr = 0;
/* Cache the channel's MISC. control registers' offset */
hwif->select_data = hwif->channel ? 0x54 : 0x50;
@@ -1288,29 +1319,6 @@ static void __devinit init_hwif_hpt366(i
/* Serialize access to this device if needed */
if (serialize && hwif->mate)
hwif->serialized = hwif->mate->serialized = 1;
-
- /*
- * Disable the "fast interrupt" prediction. Don't hold off
- * on interrupts. (== 0x01 despite what the docs say)
- */
- pci_read_config_byte(dev, hwif->select_data + 1, &old_mcr);
-
- if (info->chip_type >= HPT374)
- new_mcr = old_mcr & ~0x07;
- else if (info->chip_type >= HPT370) {
- new_mcr = old_mcr;
- new_mcr &= ~0x02;
-
-#ifdef HPT_DELAY_INTERRUPT
- new_mcr &= ~0x01;
-#else
- new_mcr |= 0x01;
-#endif
- } else /* HPT366 and HPT368 */
- new_mcr = old_mcr & ~0x80;
-
- if (new_mcr != old_mcr)
- pci_write_config_byte(dev, hwif->select_data + 1, new_mcr);
}
static int __devinit init_dma_hpt366(ide_hwif_t *hwif,
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH 1/2] hpt366: add hpt3xx_disable_fast_irq() helper
2008-08-02 17:15 [PATCH 1/2] hpt366: add hpt3xx_disable_fast_irq() helper Bartlomiej Zolnierkiewicz
@ 2008-10-14 20:51 ` Sergei Shtylyov
2008-10-15 18:11 ` Bartlomiej Zolnierkiewicz
0 siblings, 1 reply; 5+ messages in thread
From: Sergei Shtylyov @ 2008-10-14 20:51 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: linux-ide, linux-kernel
Hello.
Bartlomiej Zolnierkiewicz wrote:
> * Factor out disabling of "fast interrupt" prediction from
> init_hwif_hpt366() to hpt3xx_disable_fast_irq() helper.
> * Use hpt3xx_disable_fast_irq() in ->init_chipset instead of
> ->init_hwif method.
> This is a preparation for adding proper PCI PM support.
> While at it:
> * Cache chip type in chip_type variable in hpt3xx_disable_fast_irq().
> There should be no functional changes caused by this patch.
Except a warning. ;-)
> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
> Index: b/drivers/ide/pci/hpt366.c
> ===================================================================
> --- a/drivers/ide/pci/hpt366.c
> +++ b/drivers/ide/pci/hpt366.c
> @@ -1265,7 +1297,6 @@ static void __devinit init_hwif_hpt366(i
> struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
> int serialize = HPT_SERIALIZE_IO;
> u8 chip_type = info->chip_type;
> - u8 new_mcr, old_mcr = 0;
>
> /* Cache the channel's MISC. control registers' offset */
> hwif->select_data = hwif->channel ? 0x54 : 0x50;
> @@ -1288,29 +1319,6 @@ static void __devinit init_hwif_hpt366(i
> /* Serialize access to this device if needed */
> if (serialize && hwif->mate)
> hwif->serialized = hwif->mate->serialized = 1;
> -
> - /*
> - * Disable the "fast interrupt" prediction. Don't hold off
> - * on interrupts. (== 0x01 despite what the docs say)
> - */
> - pci_read_config_byte(dev, hwif->select_data + 1, &old_mcr);
> -
> - if (info->chip_type >= HPT374)
> - new_mcr = old_mcr & ~0x07;
> - else if (info->chip_type >= HPT370) {
> - new_mcr = old_mcr;
> - new_mcr &= ~0x02;
> -
> -#ifdef HPT_DELAY_INTERRUPT
> - new_mcr &= ~0x01;
> -#else
> - new_mcr |= 0x01;
> -#endif
> - } else /* HPT366 and HPT368 */
> - new_mcr = old_mcr & ~0x80;
> -
> - if (new_mcr != old_mcr)
> - pci_write_config_byte(dev, hwif->select_data + 1, new_mcr);
> }
CC drivers/ide/pci/hpt366.o
drivers/ide/pci/hpt366.c: In function `init_hwif_hpt366':
drivers/ide/pci/hpt366.c:1290: warning: unused variable `dev'
You've removed the users of that variable but left the variable itself...
alas, it's too late to fix the patch. :-/
MBR, Sergei
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH 1/2] hpt366: add hpt3xx_disable_fast_irq() helper
2008-10-14 20:51 ` Sergei Shtylyov
@ 2008-10-15 18:11 ` Bartlomiej Zolnierkiewicz
2008-10-15 21:19 ` Sergei Shtylyov
0 siblings, 1 reply; 5+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2008-10-15 18:11 UTC (permalink / raw)
To: Sergei Shtylyov; +Cc: linux-ide, linux-kernel
On Tuesday 14 October 2008, Sergei Shtylyov wrote:
> Hello.
>
> Bartlomiej Zolnierkiewicz wrote:
>
> > * Factor out disabling of "fast interrupt" prediction from
> > init_hwif_hpt366() to hpt3xx_disable_fast_irq() helper.
>
> > * Use hpt3xx_disable_fast_irq() in ->init_chipset instead of
> > ->init_hwif method.
>
> > This is a preparation for adding proper PCI PM support.
>
> > While at it:
>
> > * Cache chip type in chip_type variable in hpt3xx_disable_fast_irq().
>
> > There should be no functional changes caused by this patch.
>
> Except a warning. ;-)
Sorry for that but... shit happens. ;)
> > Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
> > Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
>
> > Index: b/drivers/ide/pci/hpt366.c
> > ===================================================================
> > --- a/drivers/ide/pci/hpt366.c
> > +++ b/drivers/ide/pci/hpt366.c
> > @@ -1265,7 +1297,6 @@ static void __devinit init_hwif_hpt366(i
> > struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
> > int serialize = HPT_SERIALIZE_IO;
> > u8 chip_type = info->chip_type;
> > - u8 new_mcr, old_mcr = 0;
> >
> > /* Cache the channel's MISC. control registers' offset */
> > hwif->select_data = hwif->channel ? 0x54 : 0x50;
> > @@ -1288,29 +1319,6 @@ static void __devinit init_hwif_hpt366(i
> > /* Serialize access to this device if needed */
> > if (serialize && hwif->mate)
> > hwif->serialized = hwif->mate->serialized = 1;
> > -
> > - /*
> > - * Disable the "fast interrupt" prediction. Don't hold off
> > - * on interrupts. (== 0x01 despite what the docs say)
> > - */
> > - pci_read_config_byte(dev, hwif->select_data + 1, &old_mcr);
> > -
> > - if (info->chip_type >= HPT374)
> > - new_mcr = old_mcr & ~0x07;
> > - else if (info->chip_type >= HPT370) {
> > - new_mcr = old_mcr;
> > - new_mcr &= ~0x02;
> > -
> > -#ifdef HPT_DELAY_INTERRUPT
> > - new_mcr &= ~0x01;
> > -#else
> > - new_mcr |= 0x01;
> > -#endif
> > - } else /* HPT366 and HPT368 */
> > - new_mcr = old_mcr & ~0x80;
> > -
> > - if (new_mcr != old_mcr)
> > - pci_write_config_byte(dev, hwif->select_data + 1, new_mcr);
> > }
>
> CC drivers/ide/pci/hpt366.o
> drivers/ide/pci/hpt366.c: In function `init_hwif_hpt366':
> drivers/ide/pci/hpt366.c:1290: warning: unused variable `dev'
>
> You've removed the users of that variable but left the variable itself...
> alas, it's too late to fix the patch. :-/
Not such a big deal, we just have to make an another one...
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] hpt366: fix compile warning
Fixup for commit 1785192b5310ee25165768f5bb80f13146788e3e
("hpt366: add hpt3xx_disable_fast_irq() helper"):
CC drivers/ide/pci/hpt366.o
drivers/ide/pci/hpt366.c: In function `init_hwif_hpt366':
drivers/ide/pci/hpt366.c:1290: warning: unused variable `dev'
Reported-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/ide/pci/hpt366.c | 1 -
1 file changed, 1 deletion(-)
Index: b/drivers/ide/pci/hpt366.c
===================================================================
--- a/drivers/ide/pci/hpt366.c
+++ b/drivers/ide/pci/hpt366.c
@@ -1289,7 +1289,6 @@ static u8 hpt3xx_cable_detect(ide_hwif_t
static void __devinit init_hwif_hpt366(ide_hwif_t *hwif)
{
- struct pci_dev *dev = to_pci_dev(hwif->dev);
struct hpt_info *info = hpt3xx_get_info(hwif->dev);
int serialize = HPT_SERIALIZE_IO;
u8 chip_type = info->chip_type;
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH 1/2] hpt366: add hpt3xx_disable_fast_irq() helper
2008-10-15 18:11 ` Bartlomiej Zolnierkiewicz
@ 2008-10-15 21:19 ` Sergei Shtylyov
2008-10-15 21:55 ` Sergei Shtylyov
0 siblings, 1 reply; 5+ messages in thread
From: Sergei Shtylyov @ 2008-10-15 21:19 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: linux-ide, linux-kernel
Hello.
Bartlomiej Zolnierkiewicz wrote:
>>> * Factor out disabling of "fast interrupt" prediction from
>>> init_hwif_hpt366() to hpt3xx_disable_fast_irq() helper.
>>>
>>> * Use hpt3xx_disable_fast_irq() in ->init_chipset instead of
>>> ->init_hwif method.
>>>
>>> This is a preparation for adding proper PCI PM support.
>>>
>>> While at it:
>>>
>>> * Cache chip type in chip_type variable in hpt3xx_disable_fast_irq().
>>>
>>> There should be no functional changes caused by this patch.
>>>
>> Except a warning. ;-)
>>
>
> Sorry for that but... shit happens. ;)
>
Compile testing the patches would have helped. ;-)
>> You've removed the users of that variable but left the variable itself...
>> alas, it's too late to fix the patch. :-/
>>
>
> Not such a big deal, we just have to make an another one...
>
> From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
> Subject: [PATCH] hpt366: fix compile warning
>
> Fixup for commit 1785192b5310ee25165768f5bb80f13146788e3e
> ("hpt366: add hpt3xx_disable_fast_irq() helper"):
>
> CC drivers/ide/pci/hpt366.o
> drivers/ide/pci/hpt366.c: In function `init_hwif_hpt366':
> drivers/ide/pci/hpt366.c:1290: warning: unused variable `dev'
>
> Reported-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
>
Duh. I've posted this patch a bit earlier. ;-)
MBR, Sergei
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH 1/2] hpt366: add hpt3xx_disable_fast_irq() helper
2008-10-15 21:19 ` Sergei Shtylyov
@ 2008-10-15 21:55 ` Sergei Shtylyov
0 siblings, 0 replies; 5+ messages in thread
From: Sergei Shtylyov @ 2008-10-15 21:55 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: linux-ide, linux-kernel
Hello, I just wrote:
>> Not such a big deal, we just have to make an another one...
>>
>> From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
>> Subject: [PATCH] hpt366: fix compile warning
>>
>> Fixup for commit 1785192b5310ee25165768f5bb80f13146788e3e
>> ("hpt366: add hpt3xx_disable_fast_irq() helper"):
>>
>> CC drivers/ide/pci/hpt366.o
>> drivers/ide/pci/hpt366.c: In function `init_hwif_hpt366':
>> drivers/ide/pci/hpt366.c:1290: warning: unused variable `dev'
>>
>> Reported-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
>> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
>>
>
> Duh. I've posted this patch a bit earlier. ;-)
No, you were the first, so just add my:
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
MBR, Sergei
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-10-15 21:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-02 17:15 [PATCH 1/2] hpt366: add hpt3xx_disable_fast_irq() helper Bartlomiej Zolnierkiewicz
2008-10-14 20:51 ` Sergei Shtylyov
2008-10-15 18:11 ` Bartlomiej Zolnierkiewicz
2008-10-15 21:19 ` Sergei Shtylyov
2008-10-15 21:55 ` Sergei Shtylyov
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).