An error occurred fetching the project authors.
  1. 23 Jul, 2008 10 commits
  2. 16 Jul, 2008 4 commits
  3. 15 Jul, 2008 4 commits
  4. 08 Jul, 2008 1 commit
  5. 05 Jul, 2008 1 commit
    • Bartlomiej Zolnierkiewicz's avatar
      ide: fix hwif->gendev refcounting · 7cd95f56
      Bartlomiej Zolnierkiewicz authored
      class->dev_release is called by device_release() iff dev->release
      is not present so ide_port_class_release() is never called and the
      last hwif->gendev reference is not dropped.
      
      Fix it by removing ide_port_class_release() and get_device() call
      from ide_register_port() (device_create_drvdata() takes a hwif->gendev
      reference anyway).
      
      This patch fixes hang on wait_for_completion(&hwif->gendev_rel_comp)
      in ide_unregister() reported by Pavel Machek.
      
      Cc: Pavel Machek <pavel@suse.cz>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      7cd95f56
  6. 10 Jun, 2008 2 commits
  7. 20 May, 2008 1 commit
  8. 04 May, 2008 1 commit
  9. 01 May, 2008 1 commit
    • Bartlomiej Zolnierkiewicz's avatar
      ide: fix early setup of hwif->host_flags · 23f8e4bf
      Bartlomiej Zolnierkiewicz authored
      On Thursday 01 May 2008, Jeremy Kerr wrote:
      > Hi all,
      > 
      > On QS20 Cell machines, Linus' current git tree explodes on boot:
      > 
      > SiI680: IDE controller (0x1095:0x0680 rev 0x02) at  PCI slot 
      > 0000:00:0a.0
      > SiI680: BASE CLOCK == 133
      > SiI680: 100% native mode on irq 51
      >     ide0: MMIO-DMA
      >     ide1: MMIO-DMA
      > Unable to handle kernel paging request for data at address 
      > 0xa000100081220080
      > Faulting instruction address: 0xc000000000024748
      > cpu 0x2: Vector: 300 (Data Access) at [c00000001e143420]
      >     pc: c000000000024748: ._insw_ns+0x10/0x30
      >     lr: c000000000037fc4: .spiderpci_readsw+0x24/0x6c
      >     sp: c00000001e1436a0
      >    msr: 9000000000001032
      >    dar: a000100081220080
      >  dsisr: 40000000
      >   current = 0xc00000003d060000
      >   paca    = 0xc000000000623880
      >     pid   = 1, comm = swapper
      > enter ? for help
      > [link register   ] c000000000037fc4 .spiderpci_readsw+0x24/0x6c
      > [c00000001e1436a0] c00000000062ce63 (unreliable)
      > [c00000001e143730] c0000000000379d4 .iowa_readsw+0x78/0xa8
      > [c00000001e1437c0] c000000000037a98 .iowa_insw+0x94/0xd4
      > [c00000001e143850] c00000000022a190 .ata_input_data+0x298/0x2ec
      > [c00000001e143910] c00000000022b600 .try_to_identify+0x2c0/0x6d4
      > [c00000001e1439d0] c00000000022bb54 .do_probe+0x140/0x35c
      > [c00000001e143a80] c00000000022bfbc .ide_probe_port+0x24c/0x670
      > [c00000001e143b50] c00000000022d09c .ide_device_add_all+0x2ec/0x690
      > [c00000001e143c00] c00000000022d4a4 .ide_device_add+0x64/0x74
      > [c00000001e143c90] c00000000022f834 .ide_setup_pci_device+0x58/0x7c
      > [c00000001e143d30] c00000000038bdf8
      > [c00000001e143e10] c000000000486fb0 .ide_scan_pcibus+0x8c/0x178
      > [c00000001e143ea0] c000000000460c00 .kernel_init+0x1c4/0x344
      > [c00000001e143f90] c000000000024a1c .kernel_thread+0x4c/0x68
      > 
      > It looks like we're trying to do PIO accesses (which appear to be 
      > broken, but that's another issue) to this MMIO device. In 
      > ata_input_data, we see that:
      > 
      > 	u8 mmio = (hwif->host_flags & IDE_HFLAG_MMIO) ? 1 : 0;
      > 
      > Gives mmio == 0.
      > 
      > (what's the difference between hwif->mmio and ID_HFLAG_MMIO?)
      > 
      > In the siimage driver, hwif->host flags is initially set up correctly 
      > (host_flags includes IDE_HFLAG_MMIO), but we then *clear* this bit in 
      > ide_init_port: 
      > 
      > 	hwif->host_flags = d->host_flags;
      > 
      > where d is the struct ide_port_info for this chipset. In my case, 
      > d->host_flags is 0x0. It looks like this will be the same for all of 
      > the siimage chipsets.
      
      Don't over-write hwif->host_flags in ide_init_port(), some host drivers
      set IDE_HFLAG_MMIO or IDE_HFLAG_NO_IO_32BIT host flag early.
      
      Thanks to Jeremy Kerr for the excellent analysis of the bug.
      Reported-by: default avatarJeremy Kerr <jk@ozlabs.org>
      Tested-by: default avatarJeremy Kerr <jk@ozlabs.org>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Ben Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      23f8e4bf
  10. 28 Apr, 2008 3 commits
  11. 27 Apr, 2008 6 commits
  12. 26 Apr, 2008 6 commits
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add struct ide_dma_ops (take 3) · 5e37bdc0
      Bartlomiej Zolnierkiewicz authored
      Add struct ide_dma_ops and convert core code + drivers to use it.
      
      While at it:
      
      * Drop "ide_" prefix from ->ide_dma_end and ->ide_dma_test_irq methods.
      
      * Drop "ide_" "infixes" from DMA methods.
      
      * au1xxx-ide.c:
        - use auide_dma_{test_irq,end}() directly in auide_dma_timeout()
      
      * pdc202xx_old.c:
        - drop "old_" "infixes" from DMA methods
      
      * siimage.c:
        - add siimage_dma_test_irq() helper
        - print SATA warning in siimage_init_one()
      
      * Remove no longer needed ->init_hwif implementations.
      
      v2:
      * Changes based on review from Sergei:
        - s/siimage_ide_dma_test_irq/siimage_dma_test_irq/
        - s/drive->hwif/hwif/ in idefloppy_pc_intr().
        - fix patch description w.r.t. au1xxx-ide changes
        - fix au1xxx-ide build
        - fix naming for cmd64*_dma_ops
        - drop "ide_" and "old_" infixes
        - s/hpt3xxx_dma_ops/hpt37x_dma_ops/
        - s/hpt370x_dma_ops/hpt370_dma_ops/
        - use correct DMA ops for HPT302/N, HPT371/N and HPT374
        - s/it821x_smart_dma_ops/it821x_pass_through_dma_ops/
      
      v3:
      * Two bugs slipped in v2 (noticed by Sergei):
        - use correct DMA ops for HPT374 (for real this time)
        - handle HPT370/HPT370A properly
      Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      5e37bdc0
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add IDE_HFLAG_SERIALIZE_DMA host flag · 1fd18905
      Bartlomiej Zolnierkiewicz authored
      * Add IDE_HFLAG_SERIALIZE_DMA host flag to serialize ports
        if DMA is available and handle it in ide_init_port().
      
      * Convert sl82c105 host driver to use this new flag.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      1fd18905
    • Bartlomiej Zolnierkiewicz's avatar
      ide: do complete DMA setup in ->init_dma method (take 2) · b123f56e
      Bartlomiej Zolnierkiewicz authored
      * Make ide_hwif_setup_dma() return an error value.
      
      * Pass 'const struct ide_port_info *d' instead of 'unsigned long dmabase'
        to ->init_dma method and make it return an error value.
      
      * Rename ide_get_or_set_dma_base() to ide_pci_dma_base(),
        change ordering of its arguments and then export it.
      
      * Export ide_pci_set_master().
      
      * Do complete DMA setup inside ->init_dma method and update ->init_dma
        users accordingly.
      
      * Sanitize code for DMA setup in ide_init_port().
      
      v2:
      * Fix for CONFIG_BLK_DEV_IDEDMA_PCI=n configs
        (from Jiri Slaby <jirislaby@gmail.com>):
      
        Fix following compiler warning by returning EINVAL:
      
        In file included from ANYTHING-INCLUDING-IDE.H:45:
        include/linux/ide.h: In function ‘ide_hwif_setup_dma’:
        include/linux/ide.h:1022: warning: no return statement in function returning non-void
      
      Cc: Jiri Slaby <jirislaby@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      b123f56e
    • Harvey Harrison's avatar
      ide: replace remaining __FUNCTION__ occurrences · eb63963a
      Harvey Harrison authored
      __FUNCTION__ is gcc-specific, use __func__
      
      [bart: fix checkpatch.pl errors in ide-lib.c and ppc/mpc8xx.c while at it]
      Signed-off-by: default avatarHarvey Harrison <harvey.harrison@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      eb63963a
    • Bartlomiej Zolnierkiewicz's avatar
      ide: cleanup setting hwif->mmio flag · 3dd89a9b
      Bartlomiej Zolnierkiewicz authored
      It is no longer needed to set hwif->mmio flag to tell IDE layer to not
      manage resources so cleanup host drivers that used hwif->mmio flag only
      for this purpose.
      
      Ditto for ide_legacy_init_one().
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      3dd89a9b
    • Bartlomiej Zolnierkiewicz's avatar
      ide: manage resources for PCI devices in ide_pci_enable() (take 3) · 0d1bad21
      Bartlomiej Zolnierkiewicz authored
      * Reserve PCI BARs 0-3 (0-1 for single port controllers) in
        ide_pci_enable() and remove ide_hwif_request_regions() call
        from ide_device_add_all() (also cleanup resource management
        in scc_pata host driver).
      
      * Fix handling of PCI BAR 4 in ide_pci_enable(), then cleanup
        ide_iomio_dma() (+ init_hwif_trm290() in trm290 host driver)
        and remove ide_release[_iomio]_dma().
      
      v2:
      * Fixup trm290 host driver.
      
      v3:
      * Because of scc_pata host driver changes we need to call
        pci_request_selected_regions() also in setup_mmio_scc().
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      0d1bad21