An error occurred fetching the project authors.
- 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 2 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
- 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.
-
- 29 May, 2002 2 commits
-
-
Martin Dalecki authored
- Comment out config_chipset_for_pio from hpt366 driver. It seems to hang on it and many people consistently reported that this may be necessary. Well apparently this host chip is forced to be in DMA read mode anyway and we where undoing this there. - Apply small cosmetics to pdc202xx.c driver by Thierry Vignaud. His change log entries follow: - factorize constants with PDC_CLOCK and UDMA_SPEED_FLAG macros and the init_high_16() static inline functions, thus removing floating constants in code - remove unused variables and pci space read - kill useless code in pdc202xx_udma_irq_status() resulting in removing unused variable: the code does lots of tests to check what value to return but just always return the same exact value in all code paths! this also saves a few cpu & pci bus cyles by removing a useless read in pci space - simplify #if/#else resulting in code duplication - make init_pdc202xx clearer - remove duplicated initializations in config_drive_xfer_rate() and simplify code paths - Kill unused init_speed member from ata_device struct. Spotted by M.H.VanLeeuwen.
-
Martin Dalecki authored
- Merge ide-probe.c and ide-features.c in to one single file. They are mutually doing basically the same and in esp. in case of the device ID retrieval there *is* quite a lot of code duplication between them. ide-geometry.c fits there as well. - Remove ide_xfer_verbose - it wasn't really used. - Don't allow check_partition to be more clever then the writer of a driver. It was interfering with drivers which check partitions as they go and finally if we want to spew something about it - we can do it ourself. - Eliminate ide_geninit(). We scan for partitions now inside the recently introduced attach method. register_disk() is broken by the way and 90% of places where it's used it is doing literally nothing. Either some one didn't finish some code or the code is basically just junk from the past. Anyway we grok the partitions now one by one as we detect the channels. - ide_driveid_update is gone. We don't report the drive id through /proc/ide and we don't have to update it any longer on the fly. Still someone out there complaining that it went away!? - Use the global driver spin-lock to protect data structure access in the ide_register_subdriver() function instead of blatantly disabling all interrupts.
-
- 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.
-
- 05 May, 2002 1 commit
-
-
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 ;-).
-
- 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.
-
- 10 Apr, 2002 1 commit
-
-
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.
-
- 02 Apr, 2002 3 commits
-
-
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.
-
Martin Dalecki authored
- Make for less terse error messages in ide-tape.c. - Replaced all timecomparisions done by hand with all the proper timer_after() commands. - Remove the drive niec1 mechanisms alltogether. There are several reasons for this: 1. The code implementing it is nonintelliglible and therefore propably broken. 2. If we have to invent somethig about sceduling drive IO, it should be done on the BIO level. 3. We may in fact interleave with the IO sceduling on the upper layers and the results of two overlapping signal filters overlapped with each other can be disasterous to the overall throughput. (In fact they *are* most of the time.) 4. It was not working if you had intermixed modes on different drives DMA versus PIO. 5. Our goal is to have a driver which is able to share the badwidth properly and shouldn't needing this kind of "tuning". - Remove unused nice2 from disk struct. - Rename channel member of ata_channel to unit and device to dev to just prevent wrong interpretations. This prevents constructs like channel->channel...
-
Martin Dalecki authored
- Mark all members of structures, which get jiffies assigned or involved in ugly timeout calculations with the prefix PADAM_ for easy spotting. This is Polish for "I'm falling down" or "This brings me to the knees" or slag comment for "What a sh..". Please be assured that it doesn't sound vulgar. Please grep for it to see immediately why this nomenclature is justified. - Rename hwifs_s to ata_channel and eliminate ide_hwifs_t as well as the HWIF macro. OK this step makes this patch rather big.
-
- 28 Mar, 2002 1 commit
-
-
Russell King authored
-
- 13 Mar, 2002 1 commit
-
-
Martin Dalecki authored
If I was to give this patch a name it would be: "Vojtech Pavlik unleashed from the chains". So credit where credit is due :-). Anyway here follows the change log: Mon Mar 11 23:48:28 CET 2002 ide-clean-21 - Swallow rewritten amd74xx host chip setup code from Vojtech Pavlik. We can revert it easly if it turns out to be a bad thing. However the code looks quite sane to me. In esp. it doesn't containg that many magic numbers. - Clean stale white spaces in ide-timing.h tirvial fix. - Make ide_release_dma return void. It's value is never used anyway. - Swallow more timing setup code cleanup by Vojtech Pavlik. Apply some cosmetics to it. Port opti621 to the new setup code. - Kill abuse of ide_do_reset() on error return paths for atapi floppy tape and cd-rom devices. Just stop them. This gives better changes that defect removable media will not cause suddenly broken timings on hard discs containing system data! Even then comments in ide_do_reset() admit, that resetting the whole channel can have adverse effects on the second interface on this channel. And I have too frequently observed linux struggling on defect cd-rom for a far too long time to wish it to continue. Oh did I forget to say that the corresponding "how can I break my system fast and reliable" ioctl is gone as well? Removing it recovered the fact that the CONFIG_BLK_DEV_IDEDMA_TIMEOUT is completely bogous. I have removed this option therefore as well, because it's playing the same wrack havoc on the devices if enabled. This cat has been in an unfinished and *unfunctional* state anyway. - Actually add physical suspend code to the power handling code. Still the resume code isn't finished just jet. This is all subject to change at the point in time when we get to proper command queueing. I think however that Pavel will be interrested in tidding this bit up... - Resync with 2.5.7-pre1.
-
- 18 Feb, 2002 1 commit
-
-
Martin Dalecki authored
The end_request() function familiy (not the global one, but the IDE specific ones), did bear a permuted parameter ordering. After fixing this it turned out that at all places the huk parameter wasn't the hwgroup, but just the drive in question itself. I have changed this to be more sane, which allowed to remove many unneccessary code duplication, or rather obfuscation, in between the __ide_end_request() and ide_end_request() functions. This simplification is actually the "spreading" part of the game.
-
- 05 Feb, 2002 4 commits
-
-
Linus Torvalds authored
- Christoph Hellwig: scsi_register_module cleanup - Mikael Pettersson: apic.c LVTERR fixes - Russell King: ARM update (including bio update for icside) - Jens Axboe: more bio updates - Al Viro: make ready to switch bread away from kdev_t.. - Davide Libenzi: scheduler cleanups - Anders Gustafsson: LVM fixes for bio - Richard Gooch: devfs update
-
Linus Torvalds authored
- Alan Cox: more merging - Alexander Viro: block device module race fixes - Richard Henderson: mmap for 32-bit alpha personality - Jeff Garzik: 8139 and natsemi update
-
Linus Torvalds authored
- Jens: better ordering of requests when unable to merge - Neil Brown: make md work as a module again (we cannot autodetect in modules, not enough background information) - Neil Brown: raid5 SMP locking cleanups - Neil Brown: nfsd: handle Irix NFS clients named pipe behavior and dentry leak fix - maestro3 shutdown fix - fix dcache hash calculation that could cause bad hashes under certain circumstances (Dean Gaudet) - David Miller: networking and sparc updates - Jeff Garzik: include file cleanups - Andy Grover: ACPI update - Coda-fs error return fixes - rth: alpha Jensen update
-
Linus Torvalds authored
-