I came to realize that ejecting my dvd drive automatically resets the using_dma flag. For some time, I had to think to manually re-enable the dma setting if I didn't want to end up burning at 1X in K3B. I eventually found the problem to be happening when using "/dev/dvd" as a parameter to hdparm, but not when using "/dev/hdc".
<br>
<br>My drive is an one week old LG HL-DT-ST DVDRAM GSA-H10A. I also have an old Hewlett-Packard CD-Writer Plus 8200 installed as the slave on the same IDE channel. I am running kernel 2.6.15-1.1833_FC4 under Fedora Core 4. 
<br><br>Below is a mini script showing using_dma getting reset immediately after eject. Replace /dev/dvd by /dev/hdc and the problem is gone! Does that ring a bell to anyone?<br><br>$ sudo hdparm -c1 -d1 -u1 -a8 -k1 /dev/dvd &amp;&amp; hdparm -v /dev/dvd &amp;&amp; sudo eject &amp;&amp; hdparm -v /dev/dvd &amp;&amp; sleep 10 &amp;&amp; eject -T &amp;&amp; hdparm -v /dev/dvd
<br><br>/dev/dvd:<br>&nbsp;setting fs readahead to 8<br>&nbsp;setting 32-bit IO_support flag to 1<br>&nbsp;setting unmaskirq to 1 (on)<br>&nbsp;setting using_dma to 1 (on)<br>&nbsp;setting keep_settings to 1 (on)<br>&nbsp;IO_support&nbsp;&nbsp; =&nbsp; 1 (32-bit)<br>
&nbsp;unmaskirq&nbsp;&nbsp;&nbsp; =&nbsp; 1 (on)<br>&nbsp;using_dma&nbsp;&nbsp;&nbsp; =&nbsp; 1 (on)<br>&nbsp;keepsettings =&nbsp; 1 (on)<br>&nbsp;readahead&nbsp;&nbsp;&nbsp; =&nbsp; 8 (on)<br><br>/dev/dvd:<br>&nbsp;IO_support&nbsp;&nbsp; =&nbsp; 1 (32-bit)<br>&nbsp;unmaskirq&nbsp;&nbsp;&nbsp; =&nbsp; 1 (on)<br>&nbsp;using_dma&nbsp;&nbsp;&nbsp; =&nbsp; 1 (on)<br>&nbsp;keepsettings =&nbsp; 1 (on)
<br>&nbsp;readonly&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; 0 (off)<br>&nbsp;readahead&nbsp;&nbsp;&nbsp; =&nbsp; 8 (on)<br>&nbsp;HDIO_GETGEO failed: Invalid argument<br><br>/dev/dvd:<br>&nbsp;IO_support&nbsp;&nbsp; =&nbsp; 1 (32-bit)<br>&nbsp;unmaskirq&nbsp;&nbsp;&nbsp; =&nbsp; 1 (on)<br>&nbsp;using_dma&nbsp;&nbsp;&nbsp; =&nbsp; 0 (off)<br>&nbsp;keepsettings =&nbsp; 1 (on)
<br>&nbsp;readonly&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; 0 (off)<br>&nbsp;readahead&nbsp;&nbsp;&nbsp; =&nbsp; 8 (on)<br>&nbsp;HDIO_GETGEO failed: Invalid argument<br><br>