On Fri, Jun 22, 2012 at 10:33 AM, Pavel Hrdina <phrd...@redhat.com> wrote: > After rewrite DSKCHG bit handling the test has to be updated. Now > is needed to seek to different track to clear DSKCHG bit. > > Signed-off-by: Pavel Hrdina <phrd...@redhat.com> > --- > tests/fdc-test.c | 29 +++++++++++++++++++++-------- > 1 files changed, 21 insertions(+), 8 deletions(-) > > diff --git a/tests/fdc-test.c b/tests/fdc-test.c > index 610e2f1..5280eff 100644 > --- a/tests/fdc-test.c > +++ b/tests/fdc-test.c > @@ -156,19 +156,20 @@ static uint8_t send_read_command(void) > return ret; > } > > -static void send_step_pulse(void) > +static void send_step_pulse(bool chg_cyl) > { > int drive = 0; > int head = 0; > - static int cyl = 0; > + int cyl = 0; > + > + if (chg_cyl) > + cyl = (cyl + 1) % 4;
Missing braces, please use checkpatch.pl to avoid these issues. % 4 could be turned into & 3, maybe with a separate patch. > > floppy_send(CMD_SEEK); > floppy_send(head << 2 | drive); > g_assert(!get_irq(FLOPPY_IRQ)); > floppy_send(cyl); > ack_irq(); > - > - cyl = (cyl + 1) % 4; > } > > static uint8_t cmos_read(uint8_t reg) > @@ -195,8 +196,7 @@ static void test_no_media_on_start(void) > assert_bit_set(dir, DSKCHG); > dir = inb(FLOPPY_BASE + reg_dir); > assert_bit_set(dir, DSKCHG); > - send_step_pulse(); > - send_step_pulse(); > + send_step_pulse(1); > dir = inb(FLOPPY_BASE + reg_dir); > assert_bit_set(dir, DSKCHG); > dir = inb(FLOPPY_BASE + reg_dir); > @@ -227,7 +227,14 @@ static void test_media_change(void) > dir = inb(FLOPPY_BASE + reg_dir); > assert_bit_set(dir, DSKCHG); > > - send_step_pulse(); > + send_step_pulse(0); > + dir = inb(FLOPPY_BASE + reg_dir); > + assert_bit_set(dir, DSKCHG); > + dir = inb(FLOPPY_BASE + reg_dir); > + assert_bit_set(dir, DSKCHG); > + > + /* Step to next track should clear DSKCHG bit. */ > + send_step_pulse(1); > dir = inb(FLOPPY_BASE + reg_dir); > assert_bit_clear(dir, DSKCHG); > dir = inb(FLOPPY_BASE + reg_dir); > @@ -243,7 +250,13 @@ static void test_media_change(void) > dir = inb(FLOPPY_BASE + reg_dir); > assert_bit_set(dir, DSKCHG); > > - send_step_pulse(); > + send_step_pulse(0); > + dir = inb(FLOPPY_BASE + reg_dir); > + assert_bit_set(dir, DSKCHG); > + dir = inb(FLOPPY_BASE + reg_dir); > + assert_bit_set(dir, DSKCHG); > + > + send_step_pulse(1); > dir = inb(FLOPPY_BASE + reg_dir); > assert_bit_set(dir, DSKCHG); > dir = inb(FLOPPY_BASE + reg_dir); > -- > 1.7.7.6 > >