An error occurred fetching the project authors.
- 05 Jul, 2002 1 commit
-
-
Petr Vandrovec authored
drivers/ide/probe.c initializes gd->de_arr and gd->flags twice. Except that it is unnecessary it also leaks memory.
-
- 04 Jul, 2002 1 commit
-
-
James Bottomley authored
This panic was reported to lkml by Anton Altaparmakov. The code added to partitions/check.c to add partitions to driverfs requires preparation by the calling entity. There's a NULL pointer check to see if the calling entity actually did the preparation, but IDE forgets to clear the area it kmalloc's for struct genhd so the pointer contains junk. The fix is just to clear the struct genhd before IDE uses it.
-
- 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
- fix lock initialization for device tree handling. Well I would be lucky if it would be just a device tree like in Solaris. But after studying the code which goes in right now it appears to develop quite fast in to a "just in case" and "ad-hoc" inferface mess we have already in /proc. Shit! Look for example at the initialization of a device struct. First we have a name to the directory encompassing the device and the immediately we fill in the georgeous name field - which is enterly unnecessary. - Pull locking out from the device type drivers do_request handlers. This allowed us to remove the draddy unlocking on entry to start_request. Much more of host controller rigister acces on crutial code paths is now covered by the queue access lock.
-
- 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.
-
- 05 Jun, 2002 1 commit
-
-
David S. Miller authored
-
- 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 1 commit
-
-
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 2 commits
-
-
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.
-
Martin Dalecki authored
- Since Bartek has released finally an entierly user space based setup monitoring utility, we can finally remove the nonfunctional PROC code from the host chip drivers. We have preserved it thus far only for documentation purposes. - Use generic bus master DMA setup code. There is nothing wrong with it. - Make the ide-scsi code actually just allow for one device id per scsi host, since we are registering a host per device right now. This prevents the repetitive device recognition. Well registering an SCSI host of every single disk out there isn't the proper thing to do. I will deal with that later after my visual perception recovers again from already looking too long at the SCSI code :-). - Deal properly with host specific data mapping. (Could be that solves some problems with the driver, which where in reality kernel data corruptions.) - Homogenize flag handling for ATAPI drivers.
-
- 29 May, 2002 1 commit
-
-
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.
-
- 28 May, 2002 1 commit
-
-
Martin Dalecki authored
- Replace ide_delay_50m with mdelay(50). There is absolutely no reason we should behave different behaviors whatever IDECS support is enabled or not. - Kill last parameter of ide_register_hw(). It should return a pointer to the interface registered later. - pdc202xx patches by Bartomiej onierkiewicz. - ServerWorks chi pset support cleanup by Andrej Panin. - Move temporarily ide_setup_ports to main.c unfold it in ide-pnp.c.
-
- 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 1 commit
-
-
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.
-
- 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.
-
- 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 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 ;-).
-
- 03 May, 2002 2 commits
-
-
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.
-
Martin Dalecki authored
- Fix wrong usage of time_after in ide.c. This should cure the drive seek timeout problems some people where expierencing. This was clarified to me by Bartek, who apparently checked whatever the actual code is consistent with the comments in front of it. Thank you Bartlomiej Zolnierkiewicz. I think now that we should have time_past(xxx) in <linux/timer.h>. - Fix hpt34x.c compilation. - Minor improvements in ide-pci and some cleanups in ide-probe.c - Nuke some vastly outdated comments.
-
- 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.
-
- 01 May, 2002 1 commit
-
-
Alexander Viro authored
- put block size in bdev->bd_block_size, make do_open() and check_partition() to set it (see above), switch set_blocksize() and block_size() to use of ->bd_block_size. Remove manipulations with blksize_size[] from drivers, remove blksize_size[] itself.
-
- 30 Apr, 2002 2 commits
-
-
Martin Dalecki authored
Tue Apr 30 13:23:13 CEST 2002 ide-clean-48 This fixes the "performance" degradation partially, becouse we don't miss that many jiffies in choose_urgent_device() anymore. However choose_urgent_device has to be fixed for the off by one error to don't loop for a whole 1/100 second before submitting the next request. - Include small declaration bits for Jens. (WIN_NOP fix in esp.) - Fix ide-pmac to conform to the recent API changes. - Prepare and improve the handling of the request queue. It sucks now as many request as possible. This is improving the performance.
-
Martin Dalecki authored
- Rewrite choose_drive() to iterate explicitely over the channels and devices on them. It is not performance critical to iterate over this typically quite small array of disks and allows us to let them act on the natural entity, namely the channel as well as to remove the drive->next field from struct ata_device. Make the device eviction code in ide_do_request() more intelliglible. Add some comments explaining the reasoning behind the code there. - Now finally since the code for choosing the drive which will be serviced next is intelliglibly it became obvious that the attempt to choose the next drive based on the duration of the last request was entierly bogous. (Because for example wakeups can take a long time, but this doesn't indicate that the drive is slow.) Remove this criterium and the corresponding accounting therefore. Threat all drives fairly right now. Surprise surprise the overall system throughput increased :-).
-
- 28 Apr, 2002 2 commits
-
-
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.
-
Martin Dalecki authored
Some of the following is a bit of sensitive... but anyway it has to be done. - Scarp "portability" macros ide_request_irq() and ide_free_irq(). What a great of a surprise in the face of a kernel nowadays ported to nearly any major CPU out there, but apparently no platform needs something special here. All of them are just using the normal request_irq() and free_irq(). If some unusual platform (read obsolete door blocker) I have overlooked intentionally needs something special - please just hack the platform specific request_irq() and free_irq()- they are *far off* from being performance relevant. (Hint: You could use cooked default irq values to detect there whatever the caller was the ATA driver to decide what to do about it.) - Kill ide_check_region() ide_request_region() and ide_release_region() altogether. Add comments explaining the code there. Same arguments as above apply. Additionally we want to be able at some time to do for example mmapped PCI address space access on IA32 instead of port IO. - Rewrite the initialization code to don't use check_region at all. Add some comments there, which explain what's actually happening. - Fix creeping in of a c99 construct. - Make the main interrupt handler take a channel as data instead of the hwgroup. This is the entity an interrupt is physically associated with. PCI interrupt sharing is handled in a generically anyway. Analogously the main data entity of a device request queue (q->queuedata) is the device and not the hwgroup. However right now we are only able to push it down to the channel level. The intention is to advance the choose_drive() function to just check for equal interrupt values for serialization of request and thus to get rid of the hwgroup altogether.
-
- 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.
-
- 16 Apr, 2002 1 commit
-
-
Martin Dalecki authored
- Consolidate ide_choose_drive() and choose_drive() in to one function. - Remove sector data byteswpapping support. Byte-swapping the data is supported on the file-system level where applicable. Byte-swapped interfaces are supported on a lower level anyway. And finally it was used inconsistently. - Eliminate taskfile_input_data() and taskfile_output_data(). This allowed us to split up ideproc and eliminate the ugly action switch as well as the corresponding defines. - Remove tons of unnecessary typedefs from ide.h - Prepate the PIO read write code for soon overhaul. - Misc small bits here and there :-).
-
- 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 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.
-
- 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.
-
- 02 Apr, 2002 2 commits
-
-
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.
-
- 11 Mar, 2002 2 commits
-
-
Martin Dalecki authored
- Fix oversight in replacement of sti() cli() pairs for data structure access protection. This finally resolvs my problems with the 2.5.6 kernel series. Now I'm in fact quite puzzled how it was even possible for the system to get into the init stage without this fix.. - Fix usage of CONFIG_BLK_DEV_IDE_MODULES instead of CONFIG_BLK_DEV_IDE_MODULE. - Make idescsi_init global for usage in systems without module support enabled. - Apply Pavels Macheks patch for suspend support. Whatever some persons argue that it's not fully implemented, I think that we are in development series right now. I don't buy the mock-up examples for problems with either outdated or broken hardware. Micro Drives are for example expected to be drop in replacements for CF cards in digital cameras and I would rather expect them to be very tolerant about the driver in front of them. And then the WB caches of IDE devices are not caches in the sense of a MESI cache, they are more like buffer caches and should therefore flush them self after s short period of inactivity without the application of any special flush command. The upcoming explicit flushing commands in the ATA standard are about data integrity guarantees in high reliability systems, like DB servers for example, and not about simple cache validity. - Apply Vojtech Pavliks fix to the VIA host chip initialization code. - Add missing if-defs around PIO timing tables. - Fix max() min() related compile warnings in IDE-scsi.
-
Martin Dalecki authored
No fixes for new problems which occured since today, just syncup. - Remove help text about suitable compiler versions, which is obsoleted by the overall kernel reality. - Remove traces of not progressing work in progress code for the CONFIG_BLK_DEV_ADMA option as well as the empty ide-adma.c file as well as CONFIG_BLK_DEV_IDEDMA_TCQ. - Remove redundant CONFIG_BLK_DEV_IDE != n check in ide/Config.in. Hugh, this is a tricky one... - Add EXPORT_SYMBOL(ide_fops) again, since it's used in ide-cd.c add a note there that this is actually possibly adding the same device twice to the devfs stuff. - Finally change the MAINTAINER entry. Just too many persons bogged me about it and it doesn't take me too much time apparently. - Apply sis.patch.20020304_1. - Don't call ide_release_dma twice in cleanup_ata, since ide_unregister is already calling it for us. Change prototype of ide_unregister to take a hwif as parameter and disable an ioctl for removing/scanning hwif from the list of handled interfaces. I see no reasons for having it and doing it is the fastest DOS attack on my home system I know about it. Contrary to the comments found here and there, hdparm doesn't use it. There are better hot plugging interfaces coming to the kernel right now anyway. - Wrap invalidate_drives in ide_unregister under the ide_lock instead of disabling and enabling interrupts during this operation. There are plenty of other places where the IDE drivers are enabling and disabling interrupts just to protect some data structures. - Don't call destroy_proc_ide_drives(hwif) for every single drive out there.This routine takes a hwif as a parameter. - Resync with the instable 2.5.6...
-
- 06 Mar, 2002 1 commit
-
-
Martin Dalecki authored
This is actually an attempt to remove some stall code from this driver. However if some *real* users complain (Not just the usuall: "Hey - if someone!" but the "Hey I'm using this!") I'm all open to reenable it. Since I prepared this patch yerstoday it doesn't contain the ide_module.h fixup. This will follow later. - Don't use the convoluted byte type in ide-pci.c. Just use the proper u8instead. - Move ide_get_or_set_dma_base to the only place where it's used and reorganize the code there by killing the unnecessary CONFIG_BLK_DEV_IDEDMA_FORCED configuration option. - Remove unfunctional CONFIG_PKT_TASK_IOCTL code. - Kill unused ALTSTAT_SCREW_UP code. - Tons of dead code removed from ide-taskfile.c (#if 0 #endif and friends) - Remove unused IDE_DEBUG macro as well as lots of other name space pollution from ide.h. - Start using the ide_lock spin-lock for protecting access to data structures instead of the excessive interrupt disabling games. - Shorten the proc ouput of the piix initialization module. - Remove special /proc tape "name" output from ide-tape.c. This was redundant data which should only show up on syslog anyway. - Kill the REALLY_FAST_IO undef from the ide.h. This was a mistake present since far too many years in this driver. The proper way to deal with broken systems is to define REALLY_SLOW_IO in system dependent headers or particular driver files. We can always reintroduce it easy if real users will complain, since OUT_BYTE() and similar can be used as hooks. But I don't expect anybody reporting about this. Even on the most broken IDE chip in the world (cmd640 at VLB) undefining this *always* worked for me. Nearly all the code pieces in the ide driver code *reverted* it's effects explicitly anyway. - Remove the obsolete CONFIG_BLK_DEV_4DRIVES support. This was supposed to support 4 drivers attached at one channel on some older chipsets, in esp. Tekram 690CD, in the last century. They where all supposed to work at a register set starting at the base address 0x1f0. Before complaining that this is removing functionality, please note that this must have been broken for already quite a long time, since the ide driver didn't contain the special device selection methods implicated by this any longer. It didn't scan this port too if PCI host chip support was enabled (as it is in all those distributions around there). On the other hand this is the most prominent case of incoherent use of the mate member in the struct hwif_s. And please think about how big the probability is, that there are systems out there, where there are actually 4 drivers on such a channel? - Streamline module initialization code by removing one shoot functions. - Make the WAIT_READY value used in case of CONFIG_APM or CONFIG_APM_MODULE the default, since this is what really reflects the behavior of modern drives. It won't hurt any other case and finally removing it is reducing the necessary coverage for overall driver code testing/analysis. - Move the IDE_LARGE_SEEK macro to the only place where it's actually used. Replace the IDE_MIN() and IDE_MAX() drivers with the obvious. Remove unused SPLIT_WORD and MAKE WORD from the local header. - Remove CMD640_DUMP_REGS from global scope, since there is no development done on this any longer. Finally, the way the host chip initialization routines are called changed in the time between allows this to remain fully local to the host chip driver in question. - Some spell checking of comments in the code. (Yeep I have extended my Vim to do this the "Word" way with nice undercurl lines... mozilla remains to be fixed...)
-
- 05 Mar, 2002 1 commit
-
-
Martin Dalecki authored
There is no such a thing like a ide-clean-15. Never was. But here comes what has been done in ide-clean-16: - Apply a patch for the initialization of the second PIIX channel. Found by Daniel Quinlan <quinlan@transmeta.com> - Apply a patch for the DMA initialization of the serverworks chip. Ken Brownfield <brownfld@irridia.com> - Make the ata_operations methods immune against device type drivers, which donot provide them by separating the access to them out. Audit them all. - Resynchronize with 2.5.6-pre1. - Remove unused IDE_DRIVE_CMD, IDE_DRIVE_TASK, IDE_DRIVE_TASK_MASK, IDE_DRIVE_TASKFILE macros. - Disable configuration of the task file stuff. It is going to go away and will be replaced by a truly abstract interface based on functionality and *not* direct mess-up of hardware. - Resync with 2.5.6-pre2. - Add HPT entries to the fall-back list, since otherwise the driver won'trecognize the drives. We will have to make this the default behavior for allnot recognized host chip types. - Fix compilation with no PCI host chip support enabled. - Apply the overflow fixes for HPT366 by Vojtech Pavlik. - Kill the one-shoot functions ide_wait_cmd_taks() ide_wait_cmd() by moving them to the places where they are actually used. Fix a potential buffer overflow on the way. - Fix usage of ide.c as module. Thanks to Adam J. Richter for figuring out what was wrong. - Various cleanups all along as well as removal of TONS of unfinished/dead code. I think it's sometimes better to remove stuff, which isn't there, instead of hoping for a "magical day" where it will be finished.
-
- 28 Feb, 2002 2 commits
-
-
Martin Dalecki authored
Most importantly this patch is making ide.c use the new automagic for module initialization lists and further preparing the rest of the code in question here for proper module separation. Despite this the CMOS probe has been removed as well... *Iff*, which I don't expect, this breaks anything it can be reintroduced easely. During this effort an actual bug in the initialization of the main module has been uncovered as well. a quite serious BUG has been tagged in ide-scsi.c as well, but as far as now I just didn't get along to actually fixing it. (The patch is big enough as it is). Details follow: - Kill *unused* ide_media_verbose() funciton. - Remove the unnecessary media and supports_dma fields from ide_driver_t. - Remove the global name field from ide_driver_t struct by pushing it down to the places where it's actually used. - Remove the unused hwif_data field from ide_hwif_t. - Push the supports_dsc_overlap condition up to the level where it belongs: disk type as well. - Make the initialization of ide main ide.c work with the new module initialization auto-magic instead of calling it explicitly in ll_rw_block.c This prevents the ide_init() from being called twice. We have BTW. renamed it to ata_module_init(), since ata is more adequate then ide and xxx_module_init corresponds better to the naming conventions used elsewhere throughout the kernel. This BUG was there before any ide-clean. It was worked around by a magic variable preventing the second call to succeed. We have removed this variable in one of the previous patches and thus uncovered it. - Kill proc_ide_read_driver() and proc_ide_write_driver(). The drivers already report on syslog which drives they have taken care of. (Or at least they should). In esp. the proc_ide_write_driver() was just too offending for me. Beleve it or not the purpose of it was to *request a particular* driver for a device, by echoing some magic values to a magic file... More importantly this "back door" was getting in the way of a properly done modularization of the IDE stuff. - Made some not externally used functions static or not EXPORT-ed. - Provide the start of a proper modularization between the main module and drivers for particular device types. Changing the name-space polluting DRIVER() macro to ata_ops() showed how inconsistently the busy (read: module busy!) field from ide_driver_t is currently used across the different device type modules. This has to be fixed soon. - Make the ide code use the similar device type ID numbers as the SCSI code :-). This is just tedious, but it will help in a distant feature. It helps reading the code anyway. - Mark repettitive code with /* ATA-PATTERN */ comments for later consolidation at places where we did came across it. - Various comments and notes added where some explanations was missing.
-
Martin Dalecki authored
1. Start of driver tree usage upon suggestion from Pavel Machek. This still will needs a lot of further work in the future, but the current code doesn't hurt anything and allowa Pavel to work further from the base line. In esp. natively implemented suspend to file requires this - which I would love to see comming in,since I'm quite frequently using a notebook myself. 2. Kill the _IDE_C macro, which was playing games on entierly unnecessary declarations inside of header files in esp ide_modes.h 3. Replace the functionally totally equal system_bus_block() and ide_system_bus_speed() functions with one simple global variable: system_bus_speed. This saves quite a significatn amount of code. Unfortunately this is the part, which is makeing this patch to appear bigger then it really is... 4. Use ide_devalidate_drive() directly instead of idedisk_revalidate(). 5. Kill conditional CONFIG_KMOD as well as some other minor tweaks. Well this isn't that much in terms of functionality, but it took me quite q bit of time to catch up on the patch-2.5.5.gz ;-)
-