Hello liuxiaoping,
The behavior of the bsy bit should be discussed in the CompactFlash Association specification for CF cards; this operation occurs in the card and not in the (small) amount of FPGA logic that is used to communicate with the card. For my compact flash work, I obtained the specification directly from the source:
http://www.compactflash.org/ (
http://www.compactflash.org/)
About your question on the driver code: The initialization code should, when a card is inserted into the board, install interrupts for both control (ctl) and IDE (ide) slaves; if the IDE interrupt (ide_ieq) is not installed, the software will not function normally... so I think your modification is just masking a problem with the IDE interrupt not behaving correctly.