[CORE-11157] Update UniATA in trunk and in 0.4.1 branch to 0.46d7 version Created: 2016-05-01  Updated: 2017-10-23  Resolved: 2016-05-10

Status: Resolved
Project: Core ReactOS
Component/s: None
Fix Version/s: 0.4.1

Type: Bug Priority: Major
Reporter: Jedi-to-be Assignee: Aleksey Bragin
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
blocks CORE-6774 Issues with primary slave since r56870. Resolved
is blocked by CORE-12002 Simulation error in Bochs 2.6.8 since... Resolved
Module: uniata

 Description   

Update UniATA in trunk and in 0.4.1 branch to 0.46d7 version from v45j1

http://alter.org.ua/soft/win/uni_ata/

CORE-9119



 Comments   
Comment by Aleksey Bragin [ 2016-05-03 ]

r71252

Comment by Mark Jansen [ 2016-05-05 ]

It didnt build on msvc (2013), so I added a quick fix.

https://svn.reactos.org/svn/reactos?view=revision&revision=71262

Comment by hbelusca [ 2016-05-05 ]

Cc Alter for the msvc 2013 issue

Comment by Mark Jansen [ 2016-05-08 ]

<ariscop> ../drivers/storage/ide/uniata/id_dma.cpp:1557:33: error: 'control' may be used uninitialized in this function [-Werror=uninitialized]

The code surrounding it cannot be right,
first it is used uninitialized (control |= 8;), after that something is assigned to it.

Comment by AmineKhaldi [ 2016-05-08 ]

Aleksey Bragin Alter please address it as soon as you can so it won't block the release.

Comment by Alter [ 2016-05-08 ]

really, should be:

            USHORT control=0;
            for(i=wdmamode; i>=0; i--) {
                idx = 5+i;
                if(AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_WDMA0 + i)) {
                    udma_ok = TRUE;
                    break;
                }
            }
            if(!udma_ok) {
                AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode);
                idx = apiomode;
            } else {
                /* If the drive MWDMA is faster than it can do PIO then
                   we must force PIO into PIO0 */
                if (apiomode < needed_pio[wdmamode]) {
                    /* Enable DMA timing only */
                    control |= 8;	/* PIO cycles in PIO0 */
                }
            }
            GetPciConfig2(0x40+Channel*2, reg4x);
            if(apiomode > ATA_PIO0) {
                control |= 0x03;	/* IORDY|TIME0 */
            } else {
                control |= 0x02;	/* IORDY */
            }

Comment by Mark Jansen [ 2016-05-10 ]

Thanks!

Comment by Mark Jansen [ 2017-10-23 ]

Serge Gautherie Will you stop adding and then immediately removing links between issues?

Comment by Serge Gautherie [ 2017-10-23 ]

adding and then immediately removing links

How can I update a link type in one go?

Generated at Sat Dec 15 18:11:44 UTC 2018 using Jira 7.12.3#712004-sha1:5ef91d760d7124da5ebec5c16a948a4a807698df.