An error occurred fetching the project authors.
- 04 Jun, 2002 1 commit
-
-
Martin Dalecki authored
- Simplify ide_cmd_type_parse by removing the handling of commands which we never use. - Realize that pre_task_out_intr and pre_task_mulout_intr are semanticaly identical. Use only pre_task_out_intr(). This allowed us to eliminate the prehandler altogether. - Updated fix for misconfigured host chips by Vojtech Pavlik. - Be more permissive about ioctl handling to allow device type drivers to do they own checks. - ali14xx cleanups by Andrej Panin. - Unfold usage ide_cmd_type_parser in tcq.c code. This makes this operation local to ide-disk.c. Move it as well as the interrupt handlers used only for the handling of disk requests there too. - Guard against calling handler before the drive is ready for it in ata_taskfile()! Well this bug was there before, but right now we inform about it. - Unfold ide_cmd_type_praser in ide-disk.c. Merge the remaining bits of it with get_command. Well it's no more. - Move recal_intr to ide.c - the only place where it's used. This doesn't change the "mechanics" of the code but it makes it a lot more "obvious" what's going on.
-
- 03 Jun, 2002 1 commit
-
-
Martin Dalecki authored
- Remove last parameter from ide_dump_status. This information is now permanently present in device->staus field, so there is not need to pass it around. - Patch for DVD read through ide-scsi. There is the possibility that we can get request structures passed down, which don't have the queue field set. At lest on the BIO code path this seems to be something worth further investigation. Found by Adam J. Richter. (Jens?) - Revert my change to the hostdata handling. I did get it wrong about the way host structures are allocated by the generic SCSI layer. It plays tricks there. - piix driver updates by Vojtech Pavlik. - We have a ata_out_regfile, so we should have ata_in_regfile too.
-
- 02 Jun, 2002 2 commits
-
-
Martin Dalecki authored
- Sanitize the handling of the ioctl's and fix a bug on the way in dealing with the WIN_SMART command where arguments where exchanged. - Finally sanitize ioctl further until it turned out that we could get rid of the special request type REQ_DRIVE_CMD entierly. We are now using consistently REQ_DRIVE_ACB. One hidden code path less again! - Realize the ide_end_drive_cmd can be on the REQ_DRIVE_ACB only for ioctl() to a disk. Eliminate it's usage from device type driver modules. - Remove command member from struct hd_drive_task_hdr and place it in strcut ata_taskfile. It is not common between the normal register file and HOB. We will have to introduce some helper functions for particular command types.
-
Martin Dalecki authored
- Move ide_fixstring() from ide.c to probe.c, since this is the place, where it's most used. - Remove GET_STAT() - it's not used any longer. - Remove last parameter of ide_error. Rename it to ata_error(). - Don't use ide_fixstring in qd65xx.c host chip driver. The model name is already fixed in probe.c. - Invent ata_irq_enable() for the handling of the trice nIEN bit of the control register. Consistently use ch->intrproc method every time we toggle this bit. This simply wasn't the case before! - Disable interrupts on a previous channel only when we share them indeed. - Eliminate simple drive command handling function drive_cmd. - Simplify the ioctl handler. Move it to ioctl, since that's the only place where it's actually used.
-
- 31 May, 2002 1 commit
-
-
Martin Dalecki authored
- Get rid of SELECT_DRIVE macro. Start to move all direct hardware access functions in to one place. - Get rid of SELECT_MASK macro. Realize that the mask is always equal 0. Simplify the maskproc therefore. - Get rid of GET_STAT and OK_STAT macros as well. - hpt366 cleanups by Andrej Panin. - Artop driver update by Franz Sirl.
-
- 22 May, 2002 1 commit
-
-
Martin Dalecki authored
- Apply cleanup of host chip drivers by Bartomiej Zonierkiewicz: affected drivers - aec62xx.c, alim15x3.c, cmd64x.c, hpt34x.c, sis5513.c new tuning scheme (wip) part 1: - introduce ratemask() - use ata_timing_mode() - use ide_config_drive_speed() return value forward port from convert.10: - support for AEC6280, AEC6280R - misc cleanups I had to fix a small typo in sis5513 code... - Add a new entry for an old VIA cell hiding as something new. (Pointed out by Kees Bakker.) - Make the synchronization token active resident on the same level as the spin lock. They interact with each other. - Synchronize with linux-2.5.17. - HPT366 driver typo fix by Andries Brouwer. - Export udma_tcq_enable() symbol right now. The blk_get_request() is undefined as well.
-
- 17 May, 2002 3 commits
-
-
Martin Dalecki authored
- Propagate the queue handling changes to pmac as well. - Move set_transfer to ide-taskfile.c this is the only place where it's used and it can be made static there. Same applies to ide_ata66_check(). - Move ide_auto_reduce_xfer to ide.c. - Make ide_cmd() local to the only place where it's used. Rename it to drive_cmd(). Don't pass drive_cmd_intr() as parameter. - Remove ide_next command completion type. Nobody is using it. - Move ide_do_drive_cmd to ide-taskfile. It's used there and in sub-drivers. Not in ide.c. The usage inside the device type drivers is entirely bogus inconsistent and so on... - Kill bogus IRQ masking code. The kernel is supposed to handle this properly. We should not try to work against possible bugs in the overall irq handling code. Wow this is increasing the systems overall responsibility by a significant margin. - Remove disfunctional pdcadma code. It is only misleading to the user.
-
Martin Dalecki authored
- Streamline device detection reporting to always use ->slot_name. - Apply 64 bit sector size fixes to the overall code. - Push ->handler down to the struct ata_channel. - Introduce channel group based locking instead of a single global lock for all operations. There are still some places where we have preserved the ide_lock. We can't lock for queues during device probe and we protect global data structures during device registration and unregistration in ide.c with it. - Start replacement of serialized access to the registers of channels which share them with proper host chip driver specific locking. This affects the following host chip drivers: cmd640.c, rz1000, ... ? Seems some are setting the serialize flag just in case. So better let's do it gradually over time. Well, I still have to think whatever we really need to put channels sharing an IRQ line in the same locking group. From now on the sick concept of a hw group is gone now. We have full blown per channel request queues! Hopefully I will be able soon to get my hands on a dual Athlon machine to check how this all behaves on a multi SMP machine. - Move the whole SUPPORT_VLB_SYNC stuff to the only place where it is used: the pdc4030 host chip driver. Eliminate it from the global driver part. - Eliminate pseudo portability macros from pdc4030. This is a host chip firmly based on VLB.
-
Martin Dalecki authored
- Fix typo in pdc202xx driver. - Fix locking order in ioctl. - Fix wrong time_after usage introduced in 60. Maybe the fact I always get is wrong is related to the fact that I'm using the mouse with the left hand!? - Apply arch-clean-2 by Bartlomiej Zolnierkiewicz. - Don't disable interrupts during ide_wait_stat(). I see no reason too. - Push flags down from hwgroup to the ata_chaannel structure. - Apply small fixes from Franz Sirl to make AEC6280 working properly again.
-
- 11 May, 2002 1 commit
-
-
Martin Dalecki authored
- Rewrite ioctl handling. - Apply fix for hpt366 "hang on boot" by Andre. - Remove stale XXX_tune_req. It was no longer used. - Propagate rq through ide_error(), ide_end_drive_cmd(), ide_dump_status(), ide_wait_stat(). - Push the current drive down to ata_channel from hwgroup. - Push the timer down to the ata_channel structure. Most probably it will end at the drive.
-
- 07 May, 2002 1 commit
-
-
Martin Dalecki authored
- Push poll_timeout down from the hwgroup to the channel. We are resetting the channel and not a whole hwgroup. This way using multiple pdc202xxx cards should magically start to work with multiple performance and resets will no longer lock the system. - Updates for PDC4030 by Peter Denison <peterd@marshadder.uklinux.net>. - Make ide_raw_taskfile don't care about request buffers. They where always NULL. - Port set multi mode count over from the special setting interface to ide_raw_taskfile. Fix errors in the corresponding interrupt handler in one go as well. It turned out that this is precisely the same code as in task_no_data_intr, so we can nuke it altogether. And finally we have found some problems with the set_pio_mode() command which can fail with -EBUSY - this is in esp. probably *very* common during boot hdparm usage those days! (OK it was masked by reportig too early that it finished... Crap Crap utter crap it was!!!) Right now hdparm should just be extendid to properly sync and retry on -EBUSY and everything should be fine. And now the 1 Milion EUR question for everybody who loves to put driver settings in to /proc: How the hell could echo > /proc/ide/ide0/settings blah blah blah blah handle properly cases like -EIO, -EBUSY and so on??? Having the possibility o do it does not mean that it is a good idea to use it. OK. After realizing the simple fact that quite a lot of low level hardware manipulating ioctls may require assistance in usage from proper logic which is *very* unlikely to be implemented in a bash (for me preferable still ksh) I have made my mind up. /proc/ide will be nuked. - Execute the recalibration for error recovery on precisely the same request as the one which failed. - Remove set geometry. It's crap by means of standard specification. Because: 1. We rely on the existence of the identify command anyway. 2. This command was obsoleted *before* the identify command existed as far as I can see. 2. I'm able to have a look at what other ATA/ATAPI drivers in the wild do: They don't do it. - Just call tuneproc in set_pio_mode() directly - we are already behind the rq queue there. - After we have uncovered the broken logics behind the whole ioctl handling we now just have made ide_spin_wait_hwgroup() waiting for a proper somehow longer timeout before giving up. This was previously just hiding the broken concept of setting ioctl values through /proc/ide/ideX/settings - now it just really helps hdparm to not to give up too early. (It shouldn't probably play wreck havock on the global driver spin lock as well. I will look in to this later.) - Scrap the non necessary, to say the least, disabling of interrupts for 3, read it again please, 3 seconds, on the local CPU inside ide_spin_wait_hwgroup(). Spin lock handling needs checking there badly as I see now as well... Hey apparently any "special" requests are gone. We now have only to deal with REQ_DEVICE_ACB and REQ_DEVICE_CMD. One of them is still too much and will be killed.
-
- 05 May, 2002 2 commits
-
-
Martin Dalecki authored
- Start splitting the functions for host chip handling in to separate entities. This change is quite sensitive and may cause some trouble but it's for certain worth it anyway, because it should for example provide a much better infrastructure for th handling of different architectures.
-
Martin Dalecki authored
Adapted from patch Bar³omiej ¯o³nierkiewicz: - make straight8 a flag in ata_channel instead of byte - don't store tables as code in drive_is_flashcard() and ide_xfer_verbose() - fix init_gendisk() (due to 2.5.13 blksize_size[] change) - compress region requesting/releasing in channel_probe() and ide_unregister() - clean a bit ide_setup_ports() Start of DMA handling tratment. - Fix the parameters to ide_build_dmatable() to be channel and request. Rename it to udma_new_table(). udma will mark arch specific functions later. - Let ide_start_dma() take the request directly as an arguemnt. Rename it to ata_start_dma(). After realizing that the usage of the func argument of it was bogous and that nobody is using rwproc we where able to remove both of them. - Fix ide_destroy_dmatable() to take the channel as argument and rename it to udma_destroy_table(). This function should have possible architecture specific implementation as well at some point in time. - Split up the TCQ UDMA handling stuff in to proper functions. Jens must has been dreaming as he introduced them ;-).
-
- 03 May, 2002 1 commit
-
-
Martin Dalecki authored
- Synchronize with Jens. Applying tons of janitorian stuff to his TCQ code. Making functions static where appropriate and so on... Marking the config entry for it experimental and so on. His changelog: 2.5.13 now has the generic tag support that I wrote included, here's an IDE TCQ that uses that. Changes since the version posted for 2.5.12: Fix the ide_tcq_invalidate_queue() WIN_NOP usage needed to clear the internal queue on errors. It was disabled in the last version due to the ata_request changes, it should work now. Remove Promise tcq disable check, it works just fine on Promise as long as we handle the two-drives-with-tcq case like we currently do.
-