21 Mar, 2016

1 commit

  • The icside_probe function can be called for hotplugged devices, so
    its reference to the __initconst icside_v6_port_info variable
    may be invalid, as Kbuild points out:

    WARNING: drivers/ide/icside.o(.text+0x338): Section mismatch in reference from the function icside_probe()
    to the (unknown reference) .init.rodata:(unknown)

    Interestingly, this problem only shows up with clang but not
    with gcc, which optimizes out the __initconst variable.

    This removes the incorrect annotation.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     

04 Jan, 2013

1 commit

  • CONFIG_HOTPLUG is going away as an option. As a result, the __dev*
    markings need to be removed.

    This change removes the use of __devinit, __devexit_p, __devinitdata,
    __devinitconst, and __devexit from these drivers.

    Based on patches originally written by Bill Pemberton, but redone by me
    in order to handle some of the coding style issues better, by hand.

    Cc: Bill Pemberton
    Cc: "David S. Miller"
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

06 Oct, 2012

1 commit


07 Jun, 2012

2 commits


14 Oct, 2011

1 commit


03 Mar, 2010

1 commit


19 Jan, 2010

1 commit


12 Jan, 2010

1 commit

  • Bring back ->maskproc method since it is still needed for proper operation,
    as noticed by Russell King:

    > This change is bogus.
    >
    > writeb(0, base + ICS_ARCIN_V6_INTROFFSET_1);
    > readb(base + ICS_ARCIN_V6_INTROFFSET_2);
    >
    > writeb(0, base + ICS_ARCIN_V6_INTROFFSET_2);
    > readb(base + ICS_ARCIN_V6_INTROFFSET_1);
    >
    > This sequence of code does:
    >
    > 1. enable interrupt 1
    > 2. disable interrupt 2
    > 3. enable interrupt 2
    > 4. disable interrupt 1
    >
    > which results in the interrupt for the second channel being enabled -
    > leaving channel 1 blocked.
    >
    > Firstly, icside shares its two IDE channels with one DMA engine - so it's
    > a simplex interface. IDE supports those (or did when the code was written)
    > serializing requests between the two interfaces. libata does not.
    >
    > Secondly, the interrupt lines on icside float when there's no drive connected
    > or when the drive has its NIEN bit set, which means that you get spurious
    > screaming interrupts which can kill off all expansion card interrupts on
    > the machine unless you disable the channel interrupt on the card.
    >
    > Since libata can not serialize the operation of the two channels like IDE
    > can, the libata version of the icside driver does not contain the interrupt
    > stearing logic. Instead, it looks at the status after reset, and if
    > nothing was found on that channel, it masks the interrupt from that
    > channel.

    This patch reverts changes done in commit dff8817 (I became confused due to
    non-standard & undocumented ->maskproc method, anyway sorry about that).

    Noticed-by: Russell King
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: David S. Miller

    Bartlomiej Zolnierkiewicz
     

16 Jun, 2009

1 commit

  • Change ide_drive_t 'drive_data' field from 'unsigned int' type to 'void *'
    type, allowing a wider range of values/types to be stored in this field.

    Added 'ide_get_drivedata' and 'ide_set_drivedata' helpers to get and set
    the 'drive_data' field.

    Fixed all host drivers to maintain coherency with the change in the
    'drive_data' field type.

    Signed-off-by: Joao Ramos
    [bart: fix qd65xx build, cast to 'unsigned long', minor Coding Style fixups]
    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Joao Ramos
     

07 Jun, 2009

1 commit

  • [inspired by pata_icside]

    Enabling/disabling of card IRQs is handled fine by IRQ and IDE
    subsystems so there is no need for custom ->maskproc method.

    Moreover icside_maskproc() would enable IRQ only if it was already
    enabled [because of 'if (state->enabled && !mask)' check].

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

18 May, 2009

3 commits

  • Remove hw_regs_t typedef and rename struct hw_regs_s to struct ide_hw.

    There should be no functional changes caused by this patch.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • Pass number of ports to ide_host_{alloc,add}() and then update
    all users accordingly.

    v2:
    - drop no longer needed NULL initializers in buddha.c, cmd640.c and gayle.c
    (noticed by Sergei)

    There should be no functional changes caused by this patch.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Convert host drivers that still use hw_regs_t's chipset field to use
    the one in struct ide_port_info instead.

    * Move special handling of ide_pci chipset type from ide_hw_configure()
    to ide_init_port().

    * Remove chipset field from hw_regs_t.

    While at it:
    - remove stale comment in delkin_cb.c

    There should be no functional changes caused by this patch.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

17 May, 2009

1 commit


01 Apr, 2009

3 commits

  • Set/clear drive->waiting_for_dma flag in the core code
    instead of in ->dma_setup and ->dma_end methods.

    There should be no functional changes caused by this patch.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • Move ide_destroy_dmatable() call out from ->dma_end method to
    {ide_pc,cdrom_newpc,ide_dma}_intr(), ide_dma_timeout_retry()
    and sgiioc4_resetproc().

    This causes minor/safe behavior changes w.r.t.:
    * cmd64x.c::cmd64{8,x}_dma_end()
    * cs5536.c::cs5536_dma_end()
    * icside.c::icside_dma_end()
    * it821x.c::it821x_dma_end()
    * scc_pata.c::__scc_dma_end()
    * sl82c105.c::sl82c105_dma_end()
    * tx4939ide.c::tx4939ide_dma_end()

    v2:
    * Fix build for CONFIG_BLK_DEV_IDEDMA=n (reported by Randy Dunlap).

    Cc: Randy Dunlap
    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • All custom ->dma_timeout implementations call the generic one thus it is
    possible to have only an optional method for resetting DMA engine instead:

    * Add ->dma_clear method and convert hpt366, pdc202xx_old and sl82c105
    host drivers to use it.

    * Always use ide_dma_timeout() in ide_dma_timeout_retry() and remove
    ->dma_timeout method.

    * Make ide_dma_timeout() static.

    There should be no functional changes caused by this patch.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

27 Mar, 2009

6 commits

  • * Rename dma_timer_expiry() to ide_dma_sff_timer_expiry() and export it.

    * Add ->dma_timer_expiry method and use it to set hwif->expiry for
    ATA_PROT_DMA protocol in do_rw_taskfile().

    * Initialize ->dma_timer_expiry to ide_dma_sff_timer_expiry() for SFF hosts.

    * Move setting hwif->expiry from ide_execute_command() to its users and drop
    'expiry' argument.

    * Use ide_execute_command() instead of ->dma_exec_cmd in do_rw_taskfile().

    * Remove ->dma_exec_cmd method and its implementations.

    * Unexport ide_execute_command() and ide_dma_intr().

    v2:
    * Fix CONFIG_BLK_DEV_IDEDMA=n build (noticed by Randy Dunlap).

    * Fix *dma_expiry naming (suggested by Sergei Shtylyov).

    There should be no functional changes caused by this patch.

    Cc: Randy Dunlap
    Cc: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Set IDE_TFLAG_WRITE flag and ->rq also for ATA_CMD_PACKET
    commands.

    * Pass command to ->dma_setup method and update all its
    implementations accordingly.

    * Pass command instead of request to ide_build_sglist(),
    *_build_dmatable() and ide_map_sg().

    While at it:

    * Fix scc_dma_setup() documentation + use ATA_DMA_WR define.

    * Rename sgiioc4_build_dma_table() to sgiioc4_build_dmatable(),
    change return value type to 'int' and drop unused 'ddir'
    argument.

    * Do some minor cleanups in [tx4939]ide_dma_setup().

    There should be no functional changes caused by this patch.

    Acked-by: Borislav Petkov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Move command related fields from ide_hwif_t to struct ide_cmd.

    * Make ide_init_sg_cmd() take command and sectors number as arguments.

    There should be no functional changes caused by this patch.

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Re-map sg table if needed in ide_build_sglist().

    * Move ide_build_sglist() call from ->dma_setup to its users.

    * Un-export ide_build_sglist().

    v2:
    * Build fix for CONFIG_BLK_DEV_IDEDMA=n (noticed by Randy Dunlap).

    There should be no functional changes caused by this patch.

    Cc: Randy Dunlap
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • Check for ide_build_sglist() return value and re-map sg table if necessary.

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • This fixes hwif->channel and drive->dn assignments.

    v2:
    Fix v5/v6 mismatch noticed by Russell.

    Cc: Russell King
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

03 Feb, 2009

1 commit


07 Jan, 2009

2 commits


01 Dec, 2008

1 commit


27 Oct, 2008

1 commit

  • a) semicolon before the function body is a bad idea
    b) it's const struct foo, not struct const foo
    c) incidentally, it's ecard_remove_driver(), not ecard_unregister_driver()
    d) compiling is occasionally useful.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     

22 Oct, 2008

1 commit