• Bernhard Kaindl's avatar
    ohci1394: steps to implement suspend/resume · f011bf08
    Bernhard Kaindl authored
    I did a quick shot on what I described and the appended patch
    does the first thing needed for working suspend/resume
    in ohci1394 which is HW de- and re-initialisation.
    
    It works with suspend2disk on my Ricoh R5C552 IEEE 1394 Controller
    with the 2.6.17 kernel to the extent that if I call dvgrab --interactive
    after suspend2disk without unloading ohci1394, it does not lock up
    dvgrab with 100% CPU but properly connects to the camera, given
    that I first unplug and plug the camera after coming back from
    suspend.
    
    I guess that could be fixed by forcing a bus reset in the resume
    function.
    
    I cannot test suspend to RAM here at the moment and should
    follow the guidelines in Documentation/power/pci.txt also,
    so this is rather a quick report than a finished patch and
    there are some rough edges:
    
    However, with this patch, I have to unload at least some in-kernel
    users of ohci1394 like dv1394 or video1394 before suspending.
    
    Not doing that caused an Oops and a bad tasklet error, probably from
    not handling ISO tasklets during suspend/resume properly.
    
    Maybe these can be temporarily cleared or unregistered and
    re-registered for suspend/resume with help from the other
    layers or from the highlevel 1394 core, but I do not really
    know what these do.
    
    But this patch provides a useful base to start from and is
    already of much help for people which do not need dv1394
    and video1394 or can unload them at least during suspend.
    
    I cannot test function with sbp2 at the moment, but raw1394
    seems to work fine.
    Signed-off-by: default avatarBernhard Kaindl <bk@fsfe.org>
    
    Update 1: merge with previous two ohci1394 suspend/resume patches
    Update 2: version for application on top of Linux 2.6.19-rc4
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    f011bf08
ohci1394.c 109 KB