All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Cc: Karl Auerbach <karl@iwl.com>,
	linux-ide@vger.kernel.org, karl@cavebear.com,
	"Martin K. Petersen" <mkp@mkp.net>,
	Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: Some IDE issues with 2.6.28 on PC-Engines ALIX2
Date: Sun, 01 Feb 2009 00:03:27 +0300	[thread overview]
Message-ID: <4984BC9F.3090200@ru.mvista.com> (raw)
In-Reply-To: <200901111847.12080.bzolnier@gmail.com>

Hello.

Bartlomiej Zolnierkiewicz wrote:

>>> +enum {
>>> +	MSR_IDE_CFG		= 0x51300010,
>>> +	PCI_IDE_CFG		= 0x40,
>>> +
>>> +	CFG			= 0,
>>> +	DTC			= 2,
>>> +	CAST			= 3,
>>> +	ETC			= 4,
>>> +
>>> +	IDE_CFG_CHANEN		= (1 << 1),
>>> +	IDE_CFG_CABLE		= (1 << 17) | (1 << 16),
>>> +
>>> +	IDE_D0_SHIFT		= 24,
>>> +	IDE_D1_SHIFT		= 16,
>>> +	IDE_DRV_MASK		= 0xff,
>>> +
>>> +	IDE_CAST_D0_SHIFT	= 6,
>>> +	IDE_CAST_D1_SHIFT	= 4,
>>> +	IDE_CAST_DRV_MASK	= 0x3,
>>> +
>>> +	IDE_CAST_CMD_SHIFT	= 24,
>>> +	IDE_CAST_CMD_MASK	= 0xff,
>>> +};
>>>   
>>>       
>>    Declaring a lot of semi-related constants is not what enum was 
>> intended for I think...
>>     
>
> Don't know about that but it is still better than using defines.
>   

   That's what I doubt...

>>> +	cs5536_read(dev, CFG, &cfg);
>>> +
>>> +	if ((cfg & IDE_CFG_CHANEN) == 0) {
>>> +		printk(KERN_ERR DRV_NAME ": disabled by BIOS\n");
>>> +		return -ENODEV;
>>>   
>>>       
>>    Eh, why not do it via the usual .enablebits mechanism?
>>     
>
> Because we may be using MSR access instead of PCI one.
>   

   Ah...

> From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
> Subject: [PATCH] ide: add CS5536 host driver (v2)
>
> This is a port of libata's pata_cs5536.c (written by Martin K. Petersen)
> to IDE subsystem.
>
> Changes done while at it:
>
> * Reprogram PIO/MWDMA timings if needed before and after DMA transfer
>   (chipset uses shared PIO/MWDMA timings).
>
> * Fix cable detection to report 80-wires cable if BIOS set it for any
>   device on a port (IDE core will do drive-side cable detection later).
>
> * Don't disable UDMA while programming PIO timings.
>
> * Simplify PCI/MSR support.
>
> Pros of having IDE host driver in addition to libata's one:
>
> * IDE is much lighter than SCSI+libata, the host driver itself is also
>   a bit smaller:
>
>    text    data     bss     dec     hex filename
>    1237     500       4    1741     6cd drivers/ata/pata_cs5536.o
>    1214     128       4    1346     542 drivers/ide/cs5536.o
>
> * This allows use of IDE features which are unavailable under libata.
>
> v2:
> * Fixes per review from Sergei:
>   - simplify dependency check in Kconfig
>   - use IDE_DRV_MASK also for ->drive_data
>   - disable UDMA when programming MWDMA
>   - program new DTC timings only when necessary
>   - fix printk() level in cs5536_init_one()
>
> * Fix patch description according to comments from Alan and Sergei.
>
> Cc: Martin K. Petersen <mkp@mkp.net>
> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
> Cc: Karl Auerbach <karl@iwl.com>
> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
> ---
> v1->v2 interdiff only
>   

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>


> diff -u b/drivers/ide/cs5536.c b/drivers/ide/cs5536.c
> --- b/drivers/ide/cs5536.c
> +++ b/drivers/ide/cs5536.c
> @@ -61,6 +61,9 @@
>  
>  	IDE_CAST_CMD_SHIFT	= 24,
>  	IDE_CAST_CMD_MASK	= 0xff,
> +
> +	IDE_ETC_UDMA_RELSHIFT	= 6,
> +	IDE_ETC_UDMA_MASK	= 0x3,
>   

   Too many shifts and mask values to my taste, why not just use 0xC0?

> @@ -186,22 +189,24 @@
>  	int dshift = (drive->dn & 1) ? IDE_D1_SHIFT : IDE_D0_SHIFT;
>  	u32 etc;
>  
> -	if (mode >= XFER_UDMA_0) {
> -		cs5536_read(pdev, ETC, &etc);
> +	cs5536_read(pdev, ETC, &etc);
>  
> +	if (mode >= XFER_UDMA_0) {
>  		etc &= ~(IDE_DRV_MASK << dshift);
>   

   Er, I'm not sure using IDE_DRV_MASK here is completely correct as 
only the mask 0xC7 actually controls UltraDMA enables and cycle time...

MBR, Sergei



  reply	other threads:[~2009-01-31 21:03 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-05  0:37 Some IDE issues with 2.6.28 on PC-Engines ALIX2 Karl Auerbach
2009-01-05  3:01 ` Martin K. Petersen
2009-01-05 12:44   ` Sergei Shtylyov
2009-01-05 13:33     ` Alan Cox
2009-01-05 17:47       ` Sergei Shtylyov
2009-01-05 18:04         ` Alan Cox
2009-01-05 18:44     ` Martin K. Petersen
2009-01-05 11:36 ` Alan Cox
2009-01-05 23:23   ` Karl Auerbach
2009-01-05 23:27     ` Alan Cox
2009-01-06 12:58     ` Sergei Shtylyov
2009-01-06 19:21       ` Alan Cox
2009-01-06 19:54         ` Bartlomiej Zolnierkiewicz
2009-01-05 12:08 ` Sergei Shtylyov
2009-01-05 16:36   ` Bartlomiej Zolnierkiewicz
2009-01-05 16:52     ` Alan Cox
2009-01-05 17:15       ` Bartlomiej Zolnierkiewicz
2009-01-05 17:19         ` Alan Cox
2009-01-05 17:38           ` Bartlomiej Zolnierkiewicz
2009-01-05 18:00             ` Alan Cox
2009-01-05 18:10               ` Bartlomiej Zolnierkiewicz
2009-01-05 22:41     ` Sergei Shtylyov
2009-01-11 17:47       ` Bartlomiej Zolnierkiewicz
2009-01-31 21:03         ` Sergei Shtylyov [this message]
2009-02-01 16:16           ` Bartlomiej Zolnierkiewicz
  -- strict thread matches above, loose matches on Subject: below --
2009-01-31 11:25 Christoph .J Thompson
2009-01-31 12:53 ` Martin K. Petersen
2009-01-31 14:15   ` Sergei Shtylyov
2009-01-31 14:58     ` Martin K. Petersen
2009-01-31 14:42 ` Sergei Shtylyov
2009-01-31 16:27   ` Christoph .J Thompson
2009-01-31 16:35     ` Mark Lord

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4984BC9F.3090200@ru.mvista.com \
    --to=sshtylyov@ru.mvista.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=bzolnier@gmail.com \
    --cc=karl@cavebear.com \
    --cc=karl@iwl.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=mkp@mkp.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.