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:0.042 / U:0.524 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site