lkml.org 
[lkml]   [2011]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] pata_via: add via_fixup()
    Hello.

    On 13-10-2011 15:10, Bartlomiej Zolnierkiewicz wrote:

    > From: Bartlomiej Zolnierkiewicz<bzolnier@gmail.com>
    > Subject: [PATCH] pata_via: add via_fixup()

    > Factor out common code from via_[re]init_one() to via_fixup().

    > Signed-off-by: Bartlomiej Zolnierkiewicz<bzolnier@gmail.com>
    > ---
    > earlier references:
    > https://lkml.org/lkml/2009/11/25/381

    > drivers/ata/pata_via.c | 49 +++++++++++++++++++++++--------------------------
    > 1 file changed, 23 insertions(+), 26 deletions(-)

    > Index: b/drivers/ata/pata_via.c
    > ===================================================================
    > --- a/drivers/ata/pata_via.c
    > +++ b/drivers/ata/pata_via.c
    > @@ -491,6 +491,27 @@ static void via_config_fifo(struct pci_d
    > }
    > }
    >
    > +static void via_fixup(struct pci_dev *pdev, const struct via_isa_bridge *config)
    > +{
    > + u32 timing;
    > +
    > + /* Initialise the FIFO for the enabled channels. */
    > + via_config_fifo(pdev, config->flags);
    > +
    > + if (config->udma_mask == ATA_UDMA4) {
    > + /* The 66 MHz devices require we enable the clock */
    > + pci_read_config_dword(pdev, 0x50,&timing);
    > + timing |= 0x80008;
    > + pci_write_config_dword(pdev, 0x50, timing);
    > + }

    Hm, via_init_one() doesn't do this now... but used to do this before your
    patch:

    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=460f5318460a9a3b2562d8055b9fb1c60b768e1f

    Was that patch wrong or am I misundertanding?

    > + if (config->flags& VIA_BAD_CLK66) {
    > + /* Disable the 66MHz clock on problem devices */
    > + pci_read_config_dword(pdev, 0x50,&timing);
    > + timing&= ~0x80008;
    > + pci_write_config_dword(pdev, 0x50, timing);
    > + }
    > +}
    > +
    > /**
    > * via_init_one - discovery callback
    > * @pdev: PCI device
    > @@ -553,7 +574,6 @@ static int via_init_one(struct pci_dev *
    > const struct via_isa_bridge *config;
    > static int printed_version;
    > u8 enable;
    > - u32 timing;
    > unsigned long flags = id->driver_data;
    > int rc;
    >
    > @@ -593,9 +613,6 @@ static int via_init_one(struct pci_dev *
    > return -ENODEV;
    > }
    >
    > - /* Initialise the FIFO for the enabled channels. */
    > - via_config_fifo(pdev, config->flags);
    > -
    > /* Clock set up */
    > switch (config->udma_mask) {
    > case 0x00:
    > @@ -621,12 +638,7 @@ static int via_init_one(struct pci_dev *
    > return -ENODEV;
    > }
    >
    > - if (config->flags& VIA_BAD_CLK66) {
    > - /* Disable the 66MHz clock on problem devices */
    > - pci_read_config_dword(pdev, 0x50,&timing);
    > - timing&= ~0x80008;
    > - pci_write_config_dword(pdev, 0x50, timing);
    > - }
    > + via_fixup(pdev, config);
    >
    > /* We have established the device type, now fire it up */
    > return ata_pci_bmdma_init_one(pdev, ppi,&via_sht, (void *)config, 0);

    WBR, Sergei


    \
     
     \ /
      Last update: 2011-10-13 14:25    [W:2.401 / U:0.412 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site