lkml.org 
[lkml]   [2004]   [Jun]   [21]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: pdc202xx_old serious bug with DMA on 2.6.x series
FromAdolfo González Blázquez <>
DateMon, 21 Jun 2004 17:19:38 +0200
Your patch works perfect! I hope this is the end of this issue.

Maybe you can answer other question i have about pdc202xx_old driver.
Altough the pdc bios shows it is on mode udma5, /proc/ide/pdc202xx shows
the controller is on dma mode UDMA4. hdparm shows disks are on udma5.
This is a bug or is normal behaviour?

Thanks again for your help!!

This is what proc says about pdc202xx:
fito@soho:~$ cat /proc/ide/pdc202xx 

                                Ultra100 on M/B Chipset.
------------------------------- General Status
---------------------------------
Burst Mode                           : enabled
Host Mode                            : Normal
Bus Clocking                         : 66 External
IO pad select                        : 10 mA
Status Polling Period                : 0
Interrupt Check Status Polling Delay : 0
--------------- Primary Channel ---------------- Secondary Channel
-------------
                enabled                          enabled 
66 Clocking     disabled                         disabled
           Mode PCI                         Mode PCI   
                FIFO Empty                       FIFO Empty  
--------------- drive0 --------- drive1 -------- drive0 ----------
drive1 ------
DMA enabled:    yes              yes             no                no 
DMA Mode:       UDMA 4           UDMA 4          NOTSET           
NOTSET
PIO Mode:       PIO 4            PIO 4           NOTSET           
NOTSET

El lun, 21-06-2004 a las 16:14, Bartlomiej Zolnierkiewicz escribió:
> On Mon, 21 Jun 2004, Adolfo [ISO-8859-1] González Blázquez wrote:
> 
> > Well, it seems that problem is solved! I'm now using 2.6.7 without
> > problems. Got same perfomance on hard disks as with 2.4.x series.
> >
> > Disabling LBA48 for pdc20265 just made it work. This is the simple patch
> > I applied:
> 
> OK, thanks.  It works but similar patch went into 2.4.23 and you are
> using 2.4.25 without a problems.  Can you try this patch instead?
> 
> --- linux-2.6.7/drivers/ide/ide-probe.c	2004-06-21 15:25:51.000000000 +0200
> +++ linux/drivers/ide/ide-probe.c	2004-06-21 15:29:19.901710936 +0200
> @@ -897,7 +897,7 @@
>  	blk_queue_segment_boundary(q, 0xffff);
> 
>  	if (!hwif->rqsize)
> -		hwif->rqsize = hwif->no_lba48 ? 256 : 65536;
> +		hwif->rqsize = 256;
>  	if (hwif->rqsize < max_sectors)
>  		max_sectors = hwif->rqsize;
>  	blk_queue_max_sectors(q, max_sectors);
> 
> > diff --unified --recursive --new-file
> > linux-2.6.7/drivers/ide/pci/pdc202xx_old.c
> > linux/drivers/ide/pci/pdc202xx_old.c
> > --- linux-2.6.7/drivers/ide/pci/pdc202xx_old.c  2004-06-16
> > 07:20:17.000000000 +0200
> > +++ linux/drivers/ide/pci/pdc202xx_old.c        2004-06-21
> > 02:53:33.000000000 +0200
> > @@ -721,6 +721,10 @@
> >         hwif->tuneproc  = &config_chipset_for_pio;
> >         hwif->quirkproc = &pdc202xx_quirkproc;
> >
> > +       /* This was present on 2.6.0-test4, maybe here is the bug */
> > +       if (hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20265)
> > +               hwif->no_lba48 = (hwif->channel) ? 0 : 1;
> > +
> >         if (hwif->pci_dev->device != PCI_DEVICE_ID_PROMISE_20246) {
> >                 hwif->busproc   = &pdc202xx_tristate;
> >                 hwif->resetproc = &pdc202xx_reset;
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:04    [from the cache]
©2003-2008