An error occurred fetching the project authors.
- 26 Jul, 2002 1 commit
-
-
Martin Dalecki authored
- Rename ata-timings.h to timings.h. Same arguments as for agp. - Always include hdparm.h just before ide.h. Include them last where used. This is preparing to split out the IDE register declarations out of this file, since many other files in the kernel include it, which don't have anything to do with IDE. - Don't use the "IDE special" data type "byte". Just use the u8 data type for consistency with the rest of the kernel where applicable.
-
- 19 Jul, 2002 1 commit
-
-
Martin Dalecki authored
Most noticable in the patch: 1. we handle IRQ sharing now better then ever 2. survives quite a lot of testing by few people. Forexample cat /dev/hdb > /dev/null, where /dev/hdb contains a CD-ROM with a big cratch on the surface making sure it's broken :-). it's BTW. amanzing how wide the cratch had to be until errors ocurred. 3. Doesn't play with rq_rdev and friends Fri Jul 12 05:04:32 CEST 2002 ide-clean-99 - Push nIEN disabling down at the place where we are finished with a particular request. - First round of command line parser cleanups by Gerald Champagne. - Unfold the drive eviction functions in do_request(). This allowed us to realize that we don't have to re-get the major/minor numbers of the device we are action on from the raw device field of the currently running request. One significant place less in kernel where major/minor data gets manipulated. - Move the big IDE_BUSY loop out of do_request to do_ide_request(). This makes us realize that we don't have to clear the IDE_BUSY bit just before reentering do_request to look for more requests still pending on the queue and set it immediately again. This is fixing a tinny race on the code path from IRQ or timer function, where we had a tinny window between the clearing of the IDE_BUSY bit and reentering the request queue for completely unrelated requests to come in to our way. - Don't return any value in do_reset1(). It's always ATA_OP_CONTINUES. Split it up in to two functions one for disks (well in fact channels) and one for ATAPI devices. It turns out that they can be moved to the places where they are used to clarify the code flow. The only function remaining is do_reset_channel() now. - Duplicate code from ide_do_drive_code explicitely in ide_raw_taskfile(). Simplify ide_raw_taskfile() thereafter. Realize that ide_do_drive_cmd() is now only used by ATAPI devices. Move it therefore to atapi.c. - Do busy polling for ATAPI reset operations. This is much safer then the previous timer games played there. It simply doesn't make sense to give the bus up during such a subtile operation. We don't have to disable IRQs here as well, since we are already under the protection of the do_request mechanisms. (Well hopefully...) - Remove no longer used reset_poll() function. poll_timeout and friends are now used only in pdc4030 code. Those function where not called from IRQ context but they where set as handlers and not as expiry functions. - Return ATA_OP_CONTINUES instead of ATA_OP_FINISHED in ata_error(), to signal that we are willing to retry the operation until the maximal number of retry attempts is exceeded. Returning ATA_OP_FINISHED without prior end_request() hangs the system. - Apply trivia from DJ patch set. - Apply small configuration fix to ide-pci.c from Muli Ben-Yehuda. - Feed add_blkdev_randomness with information we already have in struct ata_channel *ch->major, instead of using the major(macro) on the request in question. - Make ide_raw_taskfile use the same request submission mechanism as tcq_invalidate_queue(). Something similar would be ideal for ioctl() code as well. - Implement actual device reset. Realize that the recalibration procedure is doomed by the standard. Don't try to recover by recalibrating devices therefore -just our retry mechanism should work in those cases. And suddenly the error handling code is IRQ safe. - Reinvent the ATA reset operation, since it is apparently needed. We still have to do the whole transfer timing reconfiguration there. - Move drive_is_ready(), which is in reality an attempt to check for IRQ requesters without clearing the IRQ line, over to the place where it belongs: device.c, which is the direct device access abstraction place. Rename it to ata_status_irq() to prevent global name space pollution. - Updates to the pdc202xxx host chip controller setup code by Bart³omiej ¯o³nierkiewicz: Forward port 2.4 patch by Hank Yang from Promise: - Add PDC20271 support - Disable LBA48 support on PDC20262 - Fix ATAPI UDMA port value - Add new quirk drive - Adjust timings for all drives when using ATA133 - Update pdc202xx_reset() waiting time - Mark TCQ as dangerous and add some bits about it to the help. - Add some missing exports. - Some small ide-scsi.c host allocation fixes by sullivan.
-
- 14 Jul, 2002 1 commit
-
-
Martin Dalecki authored
Synchronize with 2.5.25. Incorporate IDE-94, as well as 95, 96, 97 and 98-pre as announced by Bartek and unfortunately still not included in 2.5.25, which makes admittedly things still fall appart: Missing changelog for 98-pre by Bartlomiej Zolnierkiewicz (BTW. Handling Unicode should be essential at least to make proper crediting of many many peoples possible!) follows here: - add missing channel->lock unlocking/locking and fix some comments in ide_timer_expiry() - allow PCI drivers to disable autodma in ->init_dma() (bug introduced in IDE 97, affects sl82c105.c only) noticed by Russell King - alim15x3.c, if revision is <= 0x20 disable autodma - remove unneeded checks (drive.dn > 3) from pdc202xx.c and sis5513.c - use block layer wrappers And my additions follow: - Fix TCQ code. Patch based on work by Alexander Atanasov. - Use the FreeBSD derived request handler return values: ATA_OP_FINISHED ATA_OP_CONTINUES ATA_OP_RELEASED ATA_OP_READY /* for status ready reporting during poll */ - PMAC compilation fix by Paul Mackerras. - Simplify the ata_status_poll function significantly. - Fix logic used to prevent drive IRQ assertion from drive on channels sharing our interrupt. NOTE: We will move it later to the time where a request is really finished soon. - Don't use ata_busy_poll() use ata_status_poll() instead. This increases code unification. NOTE: We should maybe invent some way to prevent the error recovery path to be taken at all. In esp to prevent ata_error from trying to reissue commands.
-
- 20 Jun, 2002 1 commit
-
-
Martin Dalecki authored
- Revert patch number 92. It turned out to be broken behind hope. Personally I attribute this to the recent heat wave over here and apologize for the problems this may have caused. Turned out that my note about the change beeing dnagerous in the last change log was more then true... - Locking issues for ioctl handling. - Remove waiting_for_dma bit field. Use IDE_DMA bit flag instead. Apply this bit globally and not in the corresponding implementation functions.
-
- 16 Jun, 2002 1 commit
-
-
Martin Dalecki authored
- Finally unify task_in_intr and task_mulin_intr. One crucial code path less to watch out, but a quite dangerous step in itself. PIO reading is functional again. The next step will be the unification of the write path of course. - Introduce a small helper for the execution of task file commands which basically just send a simple command down to the drive. - Add a buffer parameter to ide_raw_taskfile allowing to unify the handling of ioctl and normal ide_raw_taskfile request. - Fix some small function pointer type mismatches. Apply more host chip controller clenups by Bartlomiej: - move setting drive->current_speed from *_tune_chipset() to ide_config_drive_speed() cmd64x.c: - convert cmd64x_tuneproc() to use ata-timing library - clean cmd64x_tune_chipset() and cmd680_tune_chipset() hpt366.c: - remove empty timings table it8172.c: - kill prototypes - update to new udma_setup() scheme - misc cleanups
-
- 14 Jun, 2002 1 commit
-
-
Martin Dalecki authored
- Realize that the only place where ata_do_taskfile gets used is ide-disk.c move it and its "friends' over there. - Unify the do_request method for disk devices. This saves quite a lot of code. - Make task_muin_intr and task_in_intr use the same busy status checks on entry. - Unfold get_command at the single only place where it's used. - Add missing __ata_end_request on kill_rq path. - Rename udma_tcq_taskfile() to udma_tcq_init to make the code look like to normal udma_init. Revert the logics of udma_init and it's implementations to mirror that of udma_tcq_init(). - Fix a tiny bug in pmac_udma_init() where it was reporting the wrong value up on failure. - Revert the logics of udma_start(). It's called from udma_init context. Realize that it is always returning ide_started. Make it self and the implementations of it return void.
-
- 11 Jun, 2002 1 commit
-
-
Martin Dalecki authored
- Sync with 2.5.21 - Don't call put_device inside idedisk_cleanup(). This is apparently triggering some bug inside the handling of device trees. Or we don't register the device properly within the tree. Check this later. - Further work on the channel register file access locking. Push the locking out from __ide_end_request to ide_end_request. Rename those functions to respective __ata_end_request() and ata_end_request(). - Move ide_wait_status to device.c rename it to ata_status_poll(). - Further work on locking scope issues. - devfs showed us once again that it changed the policy from agnostic numbers to unpleasant string names.
-
- 09 Jun, 2002 1 commit
-
-
Martin Dalecki authored
Most importantly this makes ide-scsi work again, which I broke IDE 85. And we are starting to be serious about locking issues. However the locking issues will take some patches until they stabilize. - Add spin locks in ata_special_intr. - Add Server Works CSB6 handling by Matt Domsch. - Atari updates by Geert Uytterhoeven: * irq_lock is used in more than one file, so make it global and rename it to ide_irq_lock * `hwgroup' is dead, use `channel' instead * ide_irq_lock depends on ATA_ARCH_LOCK, not on m68k or APUS - Small janitorial tidbits by Angus Sawyer. - PIIX driver updates by Vojtech Pavlik: * Removes the CONFIG_BLK_DEV_PIIX_TRY133 option. I've got an official statement from Intel saying that the controller definitely isn't intended to operate at this speed and doing so may cause severe trouble. * Fixes a bug in ata-timing.c, where EIDE timing data was discarded by accident. * Fixed a couple bugs in the Artop driver (UDMA clocks, active/recovery timing), 8-bit timing merging. * Removes an unused variable from piix.c - Move locking out from ide_set_handler(). There are places where it incurred too frequent lock grab and release or where we did miss to lock against concurrent hardware access. Generally the locking appears to be too fine grained and inconsistent at many places. This is the first cut. We will deal with it step by step. - Make sure message string is initialized even if FANCY_STATUS_DUMPS is disabled. - Don't lock directly inside udma_init and implementations of this method. - Guard against REQ_SPECIAL issued by the SCSI layer on us. Use REQ_PC in ide-scsi.c instead.
-
- 05 Jun, 2002 1 commit
-
-
Martin Dalecki authored
- Work a bit on the automatic CRC error recovery handling. System still hangs. But one thing for sure - we don't have to use any specialized irq handler for it. - Since ioctl don't any longer submit requests to the queue without rq->special set, we can safely remove args_error handling from start_request. - Make REQ_SPECIAL usage in ide-floppy obvious. - Use REQ_SPECIAL everywhere instead of REQ_DRIVE_ACB. This is actually a bit dangerous but should work as far as I can see. - Unfold the now not REQ_SPECIAL specific dequeing part of ide_end_drive_cmd(). Turns out that we can thereafter remove the calls to ide_end_drice_cmd() at places where the request type isn't REQ_SPECIAL all any longer. (tcq.c) - After the above operation it turns out that there are just two places where ide_end_drive_cmd remains, namely: ata_error, task_no_data_intr drive_cmd_intr. We can avoid it by changing the logics in ata_error a slightly. So now just to cases remain where ide_end_drive_cmd remains used: drive_cmd_intr and task_no_data_intr. - Now looking a bit closer we can realize that drive_cmd_intr and task_no_data_intr can be easly merged together, since the usage of task_no_data_intr implied taskfile.sector_number == 0. - Use one single ata_special_intr function for the handling of interrupts submitted through ide_raw_cmd. - Move the remaining artefacts of ide_end_drive_cmd directly to ata_special_intr. Oh we don't need to check for REQ_SPECIAL any longer there, since the context is already known. - Set the ata_special_intr handler and command type directly inside ide_raw_taskfile to save code.
-
- 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 3 commits
-
-
Martin Dalecki authored
- Don't use ata_taskfiles cmd field for drive status reporting, we can now simply use drive->status instead. - Unify command type parser entries which could be unified due to the unification of corresponding interrupt handlers. - Eliminate reading parameter from ata_do_udma(). We have this information already in the rq. This allows us to merge several methods. - Rename XXX_udma to udma_setup, since we have finally settled up on this semantics. - Simplify tons of host chip code by removing wrapper functions.
-
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 small host chip driver cosmetics by Andrej xxx Panin and Vojtech Pavlik. - Remove support for "disc recovery time". It could only supposedly help with really simplistic broken devices from the past, which didn't have moderately sophisticated controllers. And finally Vojtech voted for it as well... so I just trust him. - Apply icside host chip driver and other ARM related updates by Russell King, which finally settle the "portability" work a bit, well hopefully.
-
- 17 May, 2002 2 commits
-
-
Martin Dalecki authored
Let's just get over with this before queue handling will be targeted again... - Implement suggestions by Russell King for improved portability and separation between PCI and non PCI host code. - pdc202xxx updates from Thierry Vignaud. - Tiny PIO fix from Tomita.
-
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.
-
- 09 May, 2002 1 commit
-
-
Martin Dalecki authored
Basically PCI driver handling reorganization. This is one step further ahead toward the goal of fully modularized host chip drivers. - Adjust ide-scsi to the new error handling. Just don't try any device resets there. - Add unmasking of IRQ per default to the PMac PCI code. - Split up the crap table from ide-pci. Let the corresponding drivers do registration of the functions they provide. This small change makes this patch rather big. - Hard-code the number of ports requested for DMA engines. They are always precisely 8 on PCs. If you hove something different to deal with, well then please just provide your own init_dma method. - Remove the HDIO_GETGEO_BIG ioctl. Patch by Andries Brouwer. Applies unmodified. - Make ON_BOARD be equal 0, so we can spare ourself some typing in structure initialization. - Normalize the terminology in the host chip drivers. It will make spotting the tons of common code found there later easier.
-
- 07 May, 2002 1 commit
-
-
Martin Dalecki authored
- m68k fixes by Roman Zippel. - CDROM PIO mode fix by Osamu Tamita. (You are true "Hawk-eye" hovering over my head! Respect - and many Thanks.) - Virtualize the udma_enable method as well to help ARM and PPC people. Please please if you would like to have some other methods virtualized in a similar way - just tell me or even better do it yourself at the end of ide-dma.c. I *don't mind* patches. - Fix the pmac code to adhere to the new API. It's supposed to work again. However this is blind coding... I give myself 80% chances for it to work ;-).
-
- 06 May, 2002 1 commit
-
-
Martin Dalecki authored
- Update HPT374 driver carried over from 2.4.xx series by Andrew Morton. Resync it with the recent host chip driver changes, or better the introduction of an API at all. - Consolidate the handling of device ID byte order in one place. This was spotted and patched by Bartomiej onierkiewicz. - Eliminate CONFIG_BLK_DEV_IDEPCI - it's duplicating the functionality of the already present and fine CONFIG_PCI flag and if we are a PCI host, we are indeed very likely to need host chip support anyway. - Remove some redundant info about the model and channel number from /proc/ide. Remove the binary entries not helpful to the user, and not used by any program and redundant to corresponding ioctls. - Properly return udma_read and udma_write values in taskfile. - Only initialize XXX_udma to the default handlers if it has not been initialized by the host chip initialization. I have enabled spin lock debugging and can see that on device flush the spin locks get wrong counts... no problems elsewher ethus far. I will re check them next time around.
-
- 05 May, 2002 3 commits
-
-
Martin Dalecki authored
- Finish the changes from patch 53. ide_dma_actaion_t is gone now as well as whole hidden code paths associated with it. I hope I didn't mess too many things up with this, since the sheer size of the changes make them sensitive. (Tested on tree different host chip sets so it shouldn't be too bad...) Just still some minor cleanup remaining to be done in this area. The tags lefts there are intentional. In esp. the ide_dma_on method in cy82c693 looks suspicious. Using udma_enable in ide-cd.c, ide-floppy.c and ide-tape.c is suspicious as well. We have just uncovered it. In the next round we will concentrate on the fixes people did send me last time.
-
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.
-
- 02 May, 2002 1 commit
-
-
Martin Dalecki authored
- Fix compilation of piix.c - Remove the PADAM_ prefix from sleep hwgroup member. - Fix Pacific Digital host chip driver API. - Fix Tekram host chip driver API. - Fold hwif_unregister() directly in to channel code.
-
- 30 Apr, 2002 1 commit
-
-
Martin Dalecki authored
- Remove the specific CONFIG_IDEDMA_PCI_WIP in favor of using the generic CONFIG_EXPERIMENTAL tag. (Pointed out by Vojtech Pavlik). - Change the signature of the IRQ handler to take the request directly as a parameter. This doesn't blow the code up but makes it much more obvious and finally it's reducing the number of side effects of the hwgroup->rq field. - A second sharp look after the above change allowed us to remove the wrq field from the hwgroup struct. It's just not used at all. - Change the signature of the end_request member of struct ata_operations to take the request as a second argument. Similar for __ide_end_request() and ide_end_request(). - Remove BUG_ON() items just before ide_set_handler(). The check in ide_set_handler is clever enough now. - Remove the rq subfield from ide-scsi packet structure. We have now the request context always in place. Same for floppy. - Let the timer expiry function take the request as a direct argument. Yes I know those changes are extensive. But they are a necessary step in between for the following purposes: - Consolidate the whole ATA/ATAPI stuff on passing a single unified request handling object. Because after eliminating those side effects it's far easier to see what's passed where. - Minimizing the amount of side effects in the overall code. That's a good thing anyway and it *doesn't* cost us neither performance nor space, since the stack depths are small anyway here. - Minimizing the usage of hwgroup - which should go away if possible.
-
- 28 Apr, 2002 1 commit
-
-
Martin Dalecki authored
Reduce the "rain forest" of pointers a bit. - Use the channel info from the drive instead of from hwgroup where possible. Since we have now a direct association between a channel and irq, we can fix the handler for unexpected interrupts to don't have to iterate over multiple possibilities. - Finally it was just possible to remove the circular list of channels associated with a hwif. The hwif member of struct hwgroup_s as well as next member if struct ata_channel are gone. - Unify ide_build_sglist() and raw_build_sglist() in to one function. Use the queue associated with a request in the case of a CMD request there instead of referencing the device minor number. This will be pushed even further later.
-
- 26 Apr, 2002 1 commit
-
-
Martin Dalecki authored
- Streamline the usage of sector_t over the strategy routines in question a bit. Streamline the do_request code in ide-disk.c. - Improve the readability of start_request in ide.c. - Remove obsolete/nowhere used stuff from hdreg.h. - Splitup special_t into classical flag field. - Use only a single field to determine the capacity of a drive. Make this field and the code paths it follows as far as possible use the sector_t instead of a hard coded integer types. This increases the chances that at some distant point in time we will indeed be able to use 64 bit wide sector_t entities. (Disks are getting huge those times now...)
-
- 25 Apr, 2002 1 commit
-
-
Martin Dalecki authored
- Revoke the TCQ stuff. Well having it for some time showed just nicely what has to be done before it can be included cleanly. But it's just not ready yet. For more explanations please simply track the usage of the special field of struct request - *both* in the generic request handling code and in overall driver code.
-
- 22 Apr, 2002 1 commit
-
-
Martin Dalecki authored
- Make the ide-cd driver usable again in DMA mode by adapting it to the TCQ related request handling changes and fixing some other minor stuff related to this. This patch is ugly like hell I know. Cleanup will follow separately. It was hard enough to make this going agian at all.
-
- 18 Apr, 2002 1 commit
-
-
Martin Dalecki authored
Synchronize with Jens Axobe: - Congruent ATA_AR_POOL fix to the ATA_AR_STATIC memmory corruption fix. - Multi sector write handling fix. - Fix drive capability deduction. - Various other minor fixes.
-
- 16 Apr, 2002 1 commit
-
-
Martin Dalecki authored
- Don't abuse the sense field for passing failed packet_commands in struct packet_command use a new field instead. - Apply minor bits forwarded by Dave Jones to me. - Fix ide_raw_taskfile() to flag the ar used there to be no subject of free_req list management. This solvs the "hang after /proc/ide read" problem, which was in fact a memory corruption problem.
-
- 15 Apr, 2002 1 commit
-
-
Jens Axboe authored
- Expand configure help options a bit - Fix xconfig bug - Decrease queue depth if a command takes too long to complete - Test master/slave stuff. It works, but one device can heavily starve another. This is the simple approach right now, means that one device will wait until the other is completely idle before starting any commands This is not necessary since we can have queued commands on both devices at the same time. TODO. - Add proc output for oldest command, just for testing. - pci_dev compile fixes. - Make sure ide-disk doesn't BUG if TCQ is not used, basically this was fixed by off-loading the using_tcq setting to ide-tcq. - Remove warning about 'queued feature set not supported' - Abstract ide_tcq_wait_dataphase() into a function
-
- 14 Apr, 2002 1 commit
-
-
Martin Dalecki authored
- Kill unneded parameters to ide_cmd_ioctl() and ide_task_ioctl(). - Apply Petr Vendrovecs fix for 32bit ver 16bit transfers. - Make CD-ROM usable again by guarding the generic routines against request field abuse found there. We will try to convert this driver to the just to be finished struct ata_request after the generic changes stabilize a bit. The strcut ata_taskfile and struct ata_request merge to be more preciese.
-
- 10 Apr, 2002 2 commits
-
-
Martin Dalecki authored
- Integrate the TCQ stuff from Jens Axboe. Deal with the conflicts, apply some cosmetic changes. We are still not at a stage where we could immediately integrate ata_request and ata_taskfile but we are no longer far away. - Clean up the data transfer function in ide-disk to use ata_request structures directly. - Kill useless leading version information in ide-disk.c - Replace the ATA_AR_INIT macro with inline ata_ar_init() function. - Replace IDE_CLEAR_TAG with ata_clear_tag(). - Replace IDE_SET_TAG with ata_set_tag(). - Kill georgeous ide_dmafunc_verbose(). - Fix typo in ide_enable_queued() (ide-tcq.c!) Apparently there still problems with a TCQ enabled device and a not enabled device on the same channel, but let's first synchronize up with Jens.
-
Martin Dalecki authored
- Eliminate ide_task_t and rename struct ide_task_s to struct ata_taskfile. This should become the entity which is holding all data for a request in the future. If this turns out to be the case, we will just rename it to ata_request. - Reduce the number of arguments for the ata_taskfile() function. This helps to wipe quite a lot of code out as well. This stage is not sensitive, so let's make a patch before we start to integrate the last work of Jens Axboe.
-
- 09 Apr, 2002 1 commit
-
-
Martin Dalecki authored
- Eliminate the mate member of the ata_channel structure. The information provided by it is already present. This patch may have undesirable effects on the ns87415.c and trm290.c host chip drivers, but it's worth for structural reasons to have it. - Kill unused code, which was "fixing" interrupt routing from ide-pci.c Don't pass any "mate" between the functions there. - Don't define SUPPORT_VLB_SYNC unconditionally in ide-taskfile.c - Apply Vojtech Pavliks fix for piix host-chip driver crashes. - Add linux/types.h to ide-pnp.c. - Apply latest sis5513 host chip driver patch from by Lionel Bouton by hand. - Apply patch by Paul Macerras for power-mac. - Try to make the ns87415 driver a bit more reentrant.
-
- 08 Apr, 2002 1 commit
-
-
Jens Axboe authored
ide-dma incorrectly only clears high memory support if the verbose dma disabling is called, it should clear it for the non-verbose too.
-
- 02 Apr, 2002 1 commit
-
-
Martin Dalecki authored
- Apply Pavel Macheks suspend resume double resume fix. - Finally remove the busy field for ata_operations and replace it with MOD_INC_USE_COUNT and MOD_DEC_USE_COUNT. - Fix ali15xx chipset support by removing initialization differences, apparently caused by mislead interpretation of the specs or a mismatch between the specification and reality. - Guard calls to ide_set_handler with checks to see whatever the previously installed IRQ handler already served it's purpose. - Convert timeout checks on poll_timeout to the time_before() interface. - Consolidate the two different IRQ handlers for multi mode PIO writes into one. The problems remain the same but at least now we will only have to tangle one single problem.
-