Bug 163418 - can't enable DMA on DVD drive
Summary: can't enable DMA on DVD drive
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 6
Hardware: i386
OS: Linux
low
low
Target Milestone: ---
Assignee: Jeff Garzik
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2005-07-16 02:29 UTC by Steve
Modified: 2019-01-02 11:49 UTC (History)
19 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-06-08 15:51:55 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
dmesg output (20.59 KB, text/plain)
2005-07-19 17:43 UTC, Steve
no flags Details
dmesg that shows DMA on DVD through SCSI / libata but also shows IO errors (21.32 KB, text/plain)
2006-02-03 22:27 UTC, Steve
no flags Details

Description Steve 2005-07-16 02:29:00 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050524 Fedora/1.0.4-4 Firefox/1.0.4

Description of problem:
When I inserted a DVD into my DVD drive, FC4 froze,
..
When I attempt to enable DMA on my DVD drive as root, I am not permitted.

Version-Release number of selected component (if applicable):
Kernel- 2.6.12-1.1390_FC4

How reproducible:
Always

Steps to Reproduce:
Attempting to enable DMA for DVD
1. Boot FC4, open terminal, Become root
2. type: hdparm -d1 /dev/hdc
3. watch screen say:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted
 using_dma    =  0 (off)
...Attempting to insert a DVD...
1. boot FC4
2. open DVD drive
3. Insert DVD
4. FC4 freezes
  

Actual Results:  With the DMA issue, I could not enable DMA
..
Inserting a DVD caused FC4 to crash.

Expected Results:  I should be able to enable DMA on my DVD drive
...
Inserting a DVD should on crash FC4

Additional info:

I wasn't sure if I should file separate bug reports (DMA, and DVD freezing FC4), but I have a feeling they are both tied to the kernel..
I have a Dell Inspiron 9300 with a Sony slim DVD writer model: DW-D56A.
I have an upgraded FC4 kernel.
Before I upgraded the kernel I could insert DVDs without FC4 freezing.
But I still recieved the same error when I attempted to enable DMA.

Comment 1 Andre Robatino 2005-07-16 10:26:53 UTC
  This is probably a duplicate of bug #162347, which was just fixed with the
release of updated kernel 2.6.12-1.1398_FC4.  See if the new kernel fixes it.

Comment 2 Steve 2005-07-16 17:28:54 UTC
Upgraded to 2.6.12-1.1398_FC4 - this fixed the dvds freezing BUT
I still cannot as root set DMA to 1 on on my DVD drive.

Comment 3 Dave Jones 2005-07-19 13:58:03 UTC
can you attach the output of dmesg please?
Alan, do we blacklist DMA on any DVD drives?

Comment 4 Steve 2005-07-19 17:43:12 UTC
Created attachment 116938 [details]
dmesg output

Comment 5 Alan Cox 2005-07-20 13:57:53 UTC
Its a limit of some of the combined SATA/PATA setups. Assigning to Jeff Garzik.
Basically it should go away as the PATA side is migrated to the new SATA layer


Comment 6 Bill Waddington 2005-07-25 13:36:24 UTC
Any idea what the time frame might be?  My ThinkPad T43
would certainly benefit from DVD/CD DMA.

Comment 7 Steve 2005-07-29 01:06:39 UTC
I'm attempting to recompile the 2.6.12.3 kernel from kernel.org without
modifying the code instead only doing make menuconfig and configuring the
kernel. Since my drives are actually IDE drives on an SATA controller I disabled
IDE drive support thinking there may have been a conflict with SATA, however,
now my DVD drive is not recognized- it's still appears in dmesg as IDE but
drivers are not loaded. I will continue to tweak the kernel configuration to see
if I can do it that way. If there is anything I can try, I will- like any tips
to tweaking the kernel configuration.

Comment 8 Steve 2005-07-29 05:19:04 UTC
I noticed something else when reviewing dmesg which may or may not be obvious:
the DVD writer initializes before the SCSI subsystem and libata SATA driver. Is
there a way to delay the DVD drive until after the SCSI subsystem or libata SATA
driver in hopes that the dvd drive will be initialized with the SATA driver
instead of the IDE driver?

Comment 9 Josh Parsons 2005-09-07 03:47:26 UTC
(In reply to comment #7)
> ... I disabled
> IDE drive support thinking there may have been a conflict with SATA, however,
> now my DVD drive is not recognized-

You need to also enable libata's support for PATA by editing
include/linux/libata.h in the linux sources.  Make sure that ATA_ENABLE_ATAPI
and ATA_ENABLE_PATA are defined.  My Dell Latitude has the same problems, and
this worked a treat for me.


Comment 10 Steve 2005-09-07 16:46:14 UTC
Ive read elsewhere this causes the kernel to be unstable. Are you experience
problems?

Comment 11 Josh Parsons 2005-09-09 01:02:09 UTC
Well, I get the occasional "NAV packet expected" error in xine (always about
mid-way through a DVD).  (Perhaps "works a treat" was a bit strong).  I am only
guessing that is due to libata though.

That, and the kernel gets confused on resume if a DVD/CD is mounted during suspend.

Apart from that, the system is very stable.

Comment 12 Steve 2005-09-12 21:32:27 UTC
changing udefine to define on those two lines didn't help.. yeah the drive
became under libata, but still can't enable dma on the drive. Here's the section
from dmesg where the dvd drive gets initialized by libata:
...
ata2: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xBFA8 irq 15
ata2: dev 0 cfg 49:0b00 82:0210 83:1000 84:0000 85:0000 86:0000 87:0000 88:0407
ata2: dev 0 ATAPI, max UDMA/33
ata2: dev 0 configured for UDMA/33
scsi2 : ata_piix
  Vendor: SONY      Model: DVD+-RW DW-D56A   Rev: PDS7
  Type:   CD-ROM                             ANSI SCSI revision: 05
sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.20
Attached scsi CD-ROM sr0 at scsi2, channel 0, id 0, lun 0
...
the error I get when doing hdparm /dev/scd0 (hwbrowser says this is dvd device)
or sr0 (dmesg) says something like innopropriate ioctl for device. It won't
gives me this error when doing hdparm on the dvd drive and trying to enable dma.
I compiled the kernel 2 times messing with the config thinking I didn't add in
support or something but I got that error. I disabled IDE in block devices and
disabled ATA Support .. I guess I'll try messing with it more but how is your
kernel configured? Or do you get this error? Becuase according to those lines it
looks like dma is enabled on the drive. But I should beable to see that by doing
hdparm -i or -I but i get that innapropriate ioctl error.. not sure ill mess
with it more.

Comment 13 Steve 2005-09-13 00:19:10 UTC
yeah, not workin right.. xine gives me that nav packet error when selecting dvd
.. totem and mplayer also give errors

Comment 14 Josh Parsons 2005-09-13 12:07:18 UTC
My impression is that DMA is active by default in this configuration, as is
suggested by the line "ata2: dev 0 configured for UDMA".

I get the same behavior from hdparm that you do.

Comment 15 Jeff Garzik 2005-09-13 14:59:19 UTC
Various comments:

1) Addressing the overall bug, DMA cannot be enabled for this hardware
configuration, as Alan Cox said.

2) If your BIOS permits, disable "combined mode."  This will separate PATA and
SATA devices into separate PCI devices, with the end result being that PATA DMA
works once again.

3) As Josh Parsons mentioned, DMA is enabled in the output shown in comment #12.

4) hdparm is not currently supported for /dev/scdX.




Comment 16 redhat-bugs2eran 2005-09-26 10:59:08 UTC
The DMA problem also occurs with kernel 2.6.12-1.1456_FC4, and with vanilla
2.6.13.1, on my ThinkPad T43. 

Comment 17 Dave Jones 2005-09-30 06:14:57 UTC
Mass update to all FC4 bugs:

An update has been released (2.6.13-1.1526_FC4) which rebases to a new upstream
kernel (2.6.13.2). As there were ~3500 changes upstream between this and the
previous kernel, it's possible your bug has been fixed already.

Please retest with this update, and update this bug if necessary.

Thanks.


Comment 18 redhat-bugs2eran 2005-10-01 15:16:59 UTC
The problem persists in 2.6.13-1.1526_FC4. 

On my ThinkPad T43 it actually got worse -- now the SATA hard disk doesn't have
DMA either.

With 2.6.12-1.1456 I got:
  HDD: /dev/sda, handled by ata_piix, DMA enabled
  DVD: /dev/hdc, handled by ide, DMA disabled (this bug)
With 2.6.12-1.1456 I get:
  HDD: /dev/hda, handled by ide, DMA disabled (this bug)
  DVD: /dev/hdc, handled by ide, DMA disabled (this bug)

BTW, the change in driver letter will probably cause problems for some people,
but that's an unrelated issue.

Comment 19 Steve 2005-10-02 23:41:37 UTC
... yeah same happened with my hard drive - it became hda and both the hard
drive and dvd writer don't have dma.
But this seems better actually because now its recognizing the drive as by the
actual ide inerface and not by the sata controller. .. i may try and compile
2.6.13.2 kernel from source and mess with the configuration to make sure there's
dma support for my controller.

Comment 20 Didier 2005-10-03 08:42:01 UTC
Confirmed with SATA Dell Inspiron i9300 : previously /dev/sda with DMA, now
/dev/hda without DMA :

# hdparm -d1 /dev/hda

/dev/hda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted
 using_dma    =  0 (off)


Back to 2.6.12-1456, I guess.


Comment 21 redhat-bugs2eran 2005-10-03 11:04:22 UTC
With kernel 2.6.13, you can use the "hda=noprobe" kernel parameter to restore
the old (2.6.12) beahvior. The IDE driver will then ignore the disk, and the
SATA driver will take over and use DMA. This doesn't work for the DVD drive, though.

Comment 22 Dave Jones 2005-11-10 19:12:17 UTC
2.6.14-1.1637_FC4 has been released as an update for FC4.
Please retest with this update, as a large amount of code has been changed in
this release, which may have fixed your problem.

Thank you.


Comment 23 Josh Parsons 2005-11-12 02:21:17 UTC
I have tested the new kernel (2.6.14-1.1637_FC4) on my system (Dell Latitude
D810) which also suffers from this problem.  No luck, the DVD appears as an IDE
device (/dev/hdc), and DMA cannot be enabled on it.

The workaround I was using with earlier kernels, of editing libata.h to enable
PATA support, and allowing libata to control the DVD also no longer works with
the 2.6.14 kernel.


Comment 24 redhat-bugs2eran 2005-11-12 03:26:35 UTC
jbparsons: try the "hdc=noprobe libata.atapi_enabled=1" kernel arguments (and
modprobe your sata drivers if needed). Works for me on a ThinkPad T43 with
vanilla 2.6.14.1.

Comment 25 Steve 2005-11-12 17:42:06 UTC
That didn't work, I got an unknown argument error.

Comment 26 Josh Parsons 2005-11-14 19:13:48 UTC
Apologies if this comment appears twice - I submitted it yesterday and it didn't
seem to show up.

I can report that libata.atapi_enabled=1 on the kernel command line works with
my custom kernel (2.6.14.2 with swsusp2, libata and ata_piix builtin).  I have
DMA on cds and dvds, however, I still have the problem with dvds stopping in
mid-play (always at the same place) with "NAV packet expected".  This does not
occur when playing the same dvd with the same software on an external (usb) drive.

Steve, the error you're seeing is probably because your kernel has libata
modularised (as the fedora kernel does).  You might try adding "options libata
atapi_enabled=1" to your /etc/modprobe.conf and reinstalling the kernel to
update your initrd.


Comment 27 Reshat Sabiq 2005-11-19 08:44:40 UTC
I believe i depend on the fix for this bug as well for my Inspiron 6000 laptop.

# hdparm -i /dev/hdc

/dev/hdc:

 Model=TSSTcorpCD-RW/DVD-ROM TSL462C, FwRev=DE01, SerialNo=
 Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
 RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=0kB, MaxMultSect=0
 (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  sdma0 sdma1 sdma2 mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 *udma2
 AdvancedPM=no
 Drive conforms to: Unspecified:  ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6

 * signifies the current active mode

I haven't tried the custom kernel suggestion yet. Should i give it a shot, or is
the fix coming out sometimes soon?

P.S. Also, a trial Debian install i'm making, treats the HD as dev/hda, as
opposed to /dev/sda treatment by FC.

Comment 28 Reshat Sabiq 2005-11-19 08:48:01 UTC
I had logged https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=173077, but if
the 2 issues are the same, it can be DUPLICATE'd.

Comment 29 PvR 2005-12-01 17:57:20 UTC
I have the same problem with a Dell Inspiron 6000 laptop with SATA harddrive and
IDE dvd writer. I use noprobe=hda to force the IDE driver to ignore the
harddrive and let ata_piix pick it up. The dvd writer gets registered with the
IDE driver:

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ide0: I/O resource 0x1F0-0x1F7 not free.
ide0: ports already in use, skipping probe
Probing IDE interface ide1...
hdc: _NEC DVD+/-RW ND-6500A, ATAPI CD/DVD-ROM drive
Probing IDE interface ide2...
Probing IDE interface ide3...
Probing IDE interface ide4...
Probing IDE interface ide5...
ide1 at 0x170-0x177,0x376 on irq 15
hdc: ATAPI 24X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache
Uniform CD-ROM driver Revision: 3.20

DMA is disabled and I'm unable to change it:

[root@dell ~]# hdparm -cd /dev/hdc

/dev/hdc:
 IO_support   =  0 (default 16-bit)
 using_dma    =  0 (off)
[root@dell ~]# hdparm -d 1 /dev/hdc

/dev/hdc:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted
 using_dma    =  0 (off)

applicable lspci output:
00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev
03) (prog-if 80 [Master])
        Subsystem: Dell: Unknown device 0188
        Flags: bus master, 66Mhz, medium devsel, latency 0, IRQ 5
        I/O ports at <ignored>
        I/O ports at <ignored>
        I/O ports at <ignored>
        I/O ports at <ignored>
        I/O ports at bfa0 [size=16]
        Capabilities: [70] Power Management version 2

I tried all of the work around above (kernel parameters) with no luck. It is
quite frustrating, the drive is pratically useless to me, I cannot watch DVDs
nor can I burn DVDs. There is no easy workaround, I wonder why the bug is at low
priority as apposed to normal.

Comment 30 Josh Parsons 2005-12-01 19:47:39 UTC
PvR, the kernel params that redhat-bugs2eran posted will not help on
a fedora kernel because libata is modularised.  See my comment #26 above.

Comment 31 Didier 2005-12-01 20:09:08 UTC
AFAIK, libsata is enabled starting last week's rawhide kernels.

Comment 32 Didier 2005-12-02 13:12:12 UTC
WRT comment #31, SATA is now fully supported in 2.6.15 :
http://linux.yyz.us/sata/software-status.html


Comment 33 Daniel Roesen 2005-12-13 05:39:51 UTC
(In reply to comment #31)
> AFAIK, libsata is enabled starting last week's rawhide kernels.

As far as I understand, this is only half a solution to the problem... the
hdc=noprobe is still needed, correct?

Went thru this with my new Thinkpad R52 as well... :-Z

Would some kind of anaconda/kudzu magic help with those kind of setups?

Comment 34 Dominik Mierzejewski 2005-12-16 01:59:33 UTC
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=163418#c26 fixes this for
me on Acer Travelmate 8100 / 8104WLMi. Thanks! Now I can burn DVDs at 4x+
instead of 1x. ;)

Comment 35 redhat-bugs2eran 2005-12-16 02:13:23 UTC
Note that vanilla kernel 2.6.15-rc5 still defaults to libata ATAPI disabled, and
needs the libata.atapi_enabled=1 argument (for built-in libata) or "options
libata atapi_enabled=1" modprobe.conf line (for modularized libata).

I didn't check whether "hdc=noprobe" is still necessary, but it doesn't hurt.

Comment 36 redhat-bugs2eran 2006-01-14 15:50:48 UTC
This recently got merged into 2.6.15-git:

commit 2bd0fa3b62e8565a80f9535e0f2bd51bba46213f
tree 9364e413a6500cbe47703e50ce6f13e7a2dab756
parent e508a391a0705f770ef1c4f1c304678b0e8e4fe8
author Jesse Barnes <jbarnes> Tue, 13 Dec 2005 03:05:03 -0500
committer Jeff Garzik <jgarzik> Tue, 13 Dec 2005 03:05:03 -0500

    [PATCH] add boot option to control Intel SATA/PATA combined mode
    
    Combined mode sucks.  Especially when both libata and the legacy IDE
    drivers try to drive ports on the same device, since that makes DMA
    rather difficult.
    
    This patch addresses the problem by allowing the user to control which
    driver binds to the ports in a combined mode configuration.  In many
    cases, they'll probably want the libata driver to control both ports
    since it can use DMA for talking with ATAPI devices (when
    libata.atapi_enabled=1 of course).  It also allows the user to get old
    school behavior by letting the legacy IDE driver bind to both ports.
    But neither is forced, the patch doesn't change current behavior unless
    one of combined_mode=ide or combined_mode=libata is passed
    on the boot line.  Either of those options may require you to access
    your devices via different device nodes (/dev/hd* in the ide case
    and /dev/sd* in the libata case), though of course if you have udev
    installed nicely you may not notice anything.  :)
    
    Let me know if the documentation is too cryptic, I'd be happy to expand
    on it if necessary.  I think most users will want to boot with
    'combined_mode=libata' and add 'options libata atapi_enabled=1'
    to their modules.conf to get good DVD playing and disk behavior
    (haven't tested CD or DVD writing though).
    
    I'd much rather things behave sanely by default (i.e. DMA for devices on
    both ports), but apparently that's difficult given the various chip
    bugs and hardware configs out there (not to mention that people's
    drives may suddenly change from /dev/hdc to /dev/sdb), so this boot
    option may be the correct long term fix.
    
    Signed-off-by: Jesse Barnes <jbarnes>
    Signed-off-by: Jeff Garzik <jgarzik>


Comment 37 Dave Jones 2006-02-03 06:35:30 UTC
This is a mass-update to all currently open kernel bugs.

A new kernel update has been released (Version: 2.6.15-1.1830_FC4)
based upon a new upstream kernel release.

Please retest against this new kernel, as a large number of patches
go into each upstream release, possibly including changes that
may address this problem.

This bug has been placed in NEEDINFO_REPORTER state.
Due to the large volume of inactive bugs in bugzilla, if this bug is
still in this state in two weeks time, it will be closed.

Should this bug still be relevant after this period, the reporter
can reopen the bug at any time. Any other users on the Cc: list
of this bug can request that the bug be reopened by adding a
comment to the bug.

If this bug is a problem preventing you from installing the
release this version is filed against, please see bug 169613.

Thank you.


Comment 38 Steve 2006-02-03 17:06:54 UTC
1. No, the updated kernel doesn't fix problem, still no DMA on my ATAPI DVD RW
on my SATA controller. DMESG applicable section: I libata.atapi_enabled was an
invalid arguement because I didn't modprobe and add it .. figured I'd just
custom compile my own kernel (dmesg output further down)

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ide0: I/O resource 0x1F0-0x1F7 not free.
ide0: ports already in use, skipping probe
Probing IDE interface ide1...
hdc: SONY DVD+/-RW DW-D56A, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hdc: ATAPI 24X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache
Uniform CD-ROM driver Revision: 3.20
ide-floppy driver 0.99.newide
usbcore: registered new driver libusual
usbcore: registered new driver hiddev
usbcore: registered new driver usbhid

2. Kernel arguement "quiet" doesn't work
3. I custom compiled my own kernel - 2.6.15.2 ... with
kernel arguments: (rhgb quiet) hdc=noprobe combined_mode=libata
libata.atapi_enabled=1
... this also happens if I leave off the combined_mode=libata, here's part of
dmesg for the DVD drive: ... great- there's DMA, but no device

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ide0: I/O resource 0x1F0-0x1F7 not free.
ide0: ports already in use, skipping probe
Probing IDE interface ide1...
Probing IDE interface ide2...
Probing IDE interface ide3...
Probing IDE interface ide4...
Probing IDE interface ide5...
libata version 1.20 loaded.
ata_piix 0000:00:1f.2: version 1.05
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 5
PCI: setting IRQ 5 as level-triggered
ACPI: PCI Interrupt 0000:00:1f.2[B] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5
PCI: Setting latency timer of device 0000:00:1f.2 to 64
ata1: SATA max UDMA/133 cmd 0x1F0 ctl 0x3F6 bmdma 0xBFA0 irq 14
ata1: dev 0 cfg 49:2b00 82:346b 83:5b29 84:6003 85:3469 86:9a09 87:6003 88:203f
ata1: dev 0 ATA-6, max UDMA/100, 156301488 sectors: LBA
ata1(0): applying bridge limits
ata1: dev 0 configured for UDMA/100
scsi0 : ata_piix
  Vendor: ATA       Model: FUJITSU MHV2080A  Rev: 0000
  Type:   Direct-Access                      ANSI SCSI revision: 05
ata2: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xBFA8 irq 15
ata2: dev 0 cfg 49:0b00 82:0210 83:1000 84:0000 85:0000 86:0000 87:0000 88:0407
ata2: dev 0 ATAPI, max UDMA/33
ata2: dev 0 configured for UDMA/33
scsi1 : ata_piix
  Vendor: SONY      Model: DVD+-RW DW-D56A   Rev: PDS7
  Type:   CD-ROM                             ANSI SCSI revision: 05
SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
SCSI device sda: drive cache: write back
SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
SCSI device sda: drive cache: write back
 sda: sda1 sda2 sda3 sda4
sd 0:0:0:0: Attached scsi disk sda
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver hiddev
usbcore: registered new driver usbhid 

Again, no device though, I'll mess around with my config a bit and try again.
..Oh, yeah I didn't compile in SCSI cd rom or generic, I'll give that a shot. So
I'll go head and recompile and possibly list updates.


Comment 39 Steve 2006-02-03 22:27:33 UTC
Created attachment 124132 [details]
dmesg that shows DMA on DVD through SCSI / libata but also shows IO errors

.. I felt compelled to update that I made the changes and tested watchin a
movie for 5 min, and play back was clear, HOWEVER, I encountered this problem
twice, once in nautilus, once in xine:
The drive got stuck in a loop and for 2 minutes or so kept attempting to access
the drive, it hasn't happened again, but im gonna test it with various movies,
cds and burning stuff as well as recheck my config. I'll just attach the whole
dmesg and you'll notice IO errors for the DVD drive (some at the end).

Comment 40 Alfredo Ferrari 2006-02-18 15:46:03 UTC
Same problem (no DMA on /dev/hdc both when it is a DVD drive or a hard disk) with
a DELL precision M70 running kernel-2.6.15-1.1831_FC4 with a SATA primary disk
(/dev/sda). Is there any chance to get a working workaround? Does the
"'combined_mode=libata' and add 'options libata atapi_enabled=1'" suggestion
(see above at comment #36) work?


Comment 41 Alfredo Ferrari 2006-02-18 16:34:29 UTC
... I tried 'combined_mode=libata' (with also ide1=noprobe even though I am not
sure it is required) and now the second (PATA) hard drive appears as /dev/sdb
(instead of /dev/hdc), has DMA enabled, and works at the "normal" speed
(30 MB/s instead of 2.5 MB/s). I'll also try with the DVD drive (using options
libata atapi_enabled=1 as well). However I would really like to know how much
robust this solution is, before spoiling my partitions etc, is it possible to
have a comment from one of the developers?

Comment 42 Steve 2006-03-29 17:39:37 UTC
now that this seems to be working good; eventhough its still experimental,
somehow the kernel should change so it automatically has the DVD drive as scd0
instead of hdc. great i mean the work around to edit modprobe.conf and add
arguements to kernel or recompile, but should the goal now be for the kernel to
detect the chipset and then load the appropriate driver. for instance the kernel
properly detects the 915 chipset but it should automatically load libata and
atapi libata passthrough instead of the current way which it just loads ide
drivers for the DVD writer / optical drive.

Comment 43 Nick 2006-04-12 01:58:36 UTC
I'm having a similar issue, but doing my testing with modules instead of builtin.
I defined ATA_ENABLE_PATA in include/linux/libata.h and recompiled my modules.
I'm passing "ide1=noprobe combined_mode=libata" to the kernel.
On bootup, I do the following:
# modprobe libata atapi_enabled=1
# modprobe ata_piix

It then looks like the drive is detected/initialized, but trying to fdisk any of
/dev/hda, hdb, hdc, hdd, or sda (all that exist) return "Unable to open <device>"

Relevant dmesg below:
SCSI subsystem initialized
libata version 1.20 loaded.
ata_piix 0000:00:1f.2: version 1.05
ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 19 (level, low) -> IRQ 233
PCI: Setting latency timer of device 0000:00:1f.2 to 64
ata1: SATA max UDMA/133 cmd 0x1F0 ctl 0x3F6 bmdma 0x18B0 irq 14
ATA: abnormal status 0x7F on port 0x1F7
ata1: disabling port
scsi0 : ata_piix
ata2: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x18B8 irq 15
ata2: dev 0 cfg 49:2f00 82:346b 83:7d01 84:4003 85:3469 86:3c01 87:4003 88:203f
ata2: dev 0 ATA-6, max UDMA/100, 156301488 sectors: LBA48
ata2(0): applying bridge limits
ata2: dev 0 configured for UDMA/100
scsi1 : ata_piix
  Vendor: ATA       Model: ST380011A         Rev: 3.06
  Type:   Direct-Access                      ANSI SCSI revision: 05


Comment 44 Scott Baker 2006-06-08 15:40:58 UTC
I can confirm this bug on my new Dell Latitude D820. FC5 would report the DVD
drive as a /dev/hdc and would not allow me to turn on DMA. After reading through
this bug I was able to pass "combined_mode=libata" to the kernel at bootup which
caused my dvd drive to change to /dev/scd0. At this point it's a SCSI (?)
interface which doesn't need DMA.

Now I am able to watch a DVD just fine (before Xine would stutter like crazy).
So the fix for me on my D820 was just to pass that kernel parameter. It should
be noted also that "combined_mode=ide" breaks everything. Doing this I had no
DMA on my HD or my DVD drive.

What exactly is the difference between /dev/sdaX and /dev/scdX anyway?

This is using the "2.6.16-1.2122_FC5" kernel obtained via Yum.

Comment 45 Jeff Garzik 2006-06-08 15:51:55 UTC
As has been explained in comment #5, #15 and others, this is expected behavior,
and not a bug.


Comment 46 Steve 2006-08-03 18:32:49 UTC
update
kernel : 2.6.17-1.2157_FC5
and
custom kernel 2.6.17.7

with kernel 2.6.17-1.2157_FC5, only the arguement hdc=noprobe is required and
this will use libata for dvd writer

BUT, now I have a new problem 2.6.17-1.2157_FC5 hdc=noprobe and custom kernel
According to nautilus I no longer have a DVD writer, nuatilus doesn't display
nor automatically mount them. HOWEVER, i can play dvd movies in xine.

however, if i use kernel 2.6.17-1.2157_FC5 with no arguements and have my dvd
writer become /dev/hdc, nautilus will recognize the dvd writer and will
automatically mount cds and dvds. But i can't play dvds -- no dma.

so what's goin on here? its most likely an issue with the kernel rather than
nautilus or what?

Comment 47 David Juran 2006-08-04 13:46:30 UTC
Steve, try using the boot argument
combined_mode=libata
instead of the 'noprobe' one you're using

/David

Comment 48 Steve 2006-08-04 14:58:07 UTC
I tried the above and used only combined_mode=libita,
however, same results, nautilus won't recognoze dvd writer.

It is present in hwbrower though and dmesg. As i said, i can play dvd movies,
although the sound is like 1 second behind the actual video. Not sure whats goin
on, maybe ill just revert to my previos kernel from like 3 months ago.
 -- Unfortuneately i didnt have internet for the past 3 months so i cant say
which kernel update caused this behavior.
thanks anyway. oh any idea when the next kernel update is so i can try that?

Comment 49 Benjamin Kosnik 2006-10-25 22:02:52 UTC
Just a futile update to this long-standing PR, which is closed and is apparently
WONTEVER_EVER_EVERFIX.

%uname -a
Linux wells.artheist.org 2.6.18-1.2798.fc6 #1 SMP Mon Oct 16 14:37:32 EDT 2006
i686 i686 i386 GNU/Linux

Yep. Brand-spanking-new FC6. Still doesn't work...

/boot/grub/grub.conf bits:
kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/wells/share rhgb quiet co
mbined_mode=libata atapi_enabled=1 hdc=noprobe

Unlike FC5, this line actually allows data CD's and the DVD writer to mount on
the GNOME desktop via nautillus. Yay.

Bad news: the transfer rates still suck.

Here's what the disks look like on this system:
%df
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/wells-share
                       35G   20G   14G  59% /
/dev/sda1              99M   11M   83M  12% /boot
tmpfs                 728M     0  728M   0% /dev/shm
/dev/mapper/lincoln-share
                      361G  286G   57G  84% /mnt/disk/lincoln
/dev/scd0             4.2G  4.2G     0 100% /media/LA_HAINE

Where:
sda1 == internal hdd
sdd == /mnt/disk/lincoln, eSATA via PCI card
scd0 == internal DVD

I get the following times:
%hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  100 MB in  3.06 seconds =  32.73 MB/sec

%hdparm -t /dev/sdd

sdd:
 Timing buffered disk reads:  168 MB in  3.02 seconds =  55.62 MB/sec

%hdparm -t /dev/scd0

/dev/scd0:
 Timing buffered disk reads:   10 MB in  3.32 seconds =   3.01 MB/sec
BLKFLSBUF failed: Function not implemented
HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Function not implemented

Anyway. Hopefully this is useful to the SATA hackers.

-benjamin

Comment 50 Benjamin Kosnik 2006-10-25 22:14:48 UTC
FYI this system is IBM/Lenovo T43, with ICH6. 

Comment 51 Steve 2006-10-26 15:30:26 UTC
hdparm -t /dev/sda
Timing buffered disk reads:  102 MB in  3.05 seconds =  33.39 MB/sec
That's what I get
what kind of hard drive and interface do you have?
also what chipset/MB?
I have a Fujitsu 80GB IDE /dev/sda (Intel 915 SATA/IDE).. I guess I'll check out
the documentation but I thought mine was ok.

I filed a related bug report bug 208049 :
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=208049

I suppose they are right, I have DMA so this report can be closed, but I decided
to file another one similar to get them to fix it so we no longer need to worry
about kernel arguments.


Note You need to log in before you can comment on or make changes to this bug.