firewire: fw-ohci: write selfIDBufferPtr before LinkControl.rcvSelfID

OHCI 1.1 clause 5.10 requires that selfIDBufferPtr is valid when a 1 is
written into LinkControl.rcvSelfID.

This driver bug has so far not been known to cause harm because most
chips obviously accept a later selfIDBufferPtr write, at least before
HCControl.linkEnable is written.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jarod Wilson <jwilson@redhat.com>
Signed-off-by: Kristian Høgsberg <krh@redhat.com>

+1 -1
+1 -1
drivers/firewire/fw-ohci.c
··· 1473 1473 reg_write(ohci, OHCI1394_HCControlClear, 1474 1474 OHCI1394_HCControl_noByteSwapData); 1475 1475 1476 + reg_write(ohci, OHCI1394_SelfIDBuffer, ohci->self_id_bus); 1476 1477 reg_write(ohci, OHCI1394_LinkControlClear, 1477 1478 OHCI1394_LinkControl_rcvPhyPkt); 1478 1479 reg_write(ohci, OHCI1394_LinkControlSet, ··· 1489 1488 ar_context_run(&ohci->ar_request_ctx); 1490 1489 ar_context_run(&ohci->ar_response_ctx); 1491 1490 1492 - reg_write(ohci, OHCI1394_SelfIDBuffer, ohci->self_id_bus); 1493 1491 reg_write(ohci, OHCI1394_PhyUpperBound, 0x00010000); 1494 1492 reg_write(ohci, OHCI1394_IntEventClear, ~0); 1495 1493 reg_write(ohci, OHCI1394_IntMaskClear, ~0);