From: Albert Lee <albertcc@tw.ibm.com>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
Doug Maxey <dwm@maxeymade.com>,
Linux IDE <linux-ide@vger.kernel.org>
Subject: [PATCH 3/4] libata-dev-2.6: pdc2027x move the PLL counter reading code
Date: Mon, 11 Apr 2005 18:06:46 +0800 [thread overview]
Message-ID: <425A4C36.5040106@tw.ibm.com> (raw)
In-Reply-To: <425A49F6.3040904@tw.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 240 bytes --]
Hi Jeff,
Change:
pdc2027x: move the PLL counter reading code to a separate function.
Attached please find the patch 3/4 against the libata-dev-2.6 tree for your review. Thanks.
Albert
Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
[-- Attachment #2: pdc_060_1.diff --]
[-- Type: text/plain, Size: 3047 bytes --]
--- libata-dev-2.6-059/drivers/scsi/pata_pdc2027x.c 2005-04-11 15:04:32.000000000 +0800
+++ libata-dev-2.6-reorg/drivers/scsi/pata_pdc2027x.c 2005-04-11 15:05:28.000000000 +0800
@@ -455,6 +455,33 @@
}
/**
+ * pdc_read_counter - Read the ctr counter
+ * @probe_ent: for the port address
+ */
+
+static unsigned long pdc_read_counter(struct ata_probe_ent *probe_ent)
+{
+ u8 ctr0, ctr1, ctr2, ctr3;
+ unsigned long counter;
+
+ outb(0x20, probe_ent->port[0].bmdma_addr + 0x01);
+ ctr0 = inb(probe_ent->port[0].bmdma_addr + 0x03);
+ outb(0x21, probe_ent->port[0].bmdma_addr + 0x01);
+ ctr1 = inb(probe_ent->port[0].bmdma_addr + 0x03);
+ outb(0x20, probe_ent->port[1].bmdma_addr + 0x01);
+ ctr2 = inb(probe_ent->port[1].bmdma_addr + 0x03);
+ outb(0x21, probe_ent->port[1].bmdma_addr + 0x01);
+ ctr3 = inb(probe_ent->port[1].bmdma_addr + 0x03);
+
+ counter = (ctr3 << 23) | (ctr2 << 15) | (ctr1 << 8) | ctr0;
+
+ PDPRINTK("ctr0[%X] ctr1[%X] ctr2[%X] ctr3[%X]\n",
+ ctr0, ctr1, ctr2, ctr3);
+
+ return counter;
+}
+
+/**
* adjust_pll - Adjust the PLL input clock in Hz.
*
* @pdc_controller: controller specific information
@@ -550,6 +577,7 @@
return;
}
+
/**
* detect_pll_input_clock - Detect the PLL input clock in Hz.
* @probe_ent: for the port address
@@ -559,28 +587,11 @@
static long pdc_detect_pll_input_clock(struct ata_probe_ent *probe_ent)
{
u8 scr1;
- unsigned long ctr0;
- unsigned long ctr1;
- unsigned long ctr2 = 0;
- unsigned long ctr3 = 0;
-
unsigned long start_count, end_count;
long pll_clock;
/* Read current counter value */
- outb(0x20, probe_ent->port[0].bmdma_addr + 0x01);
- ctr0 = inb(probe_ent->port[0].bmdma_addr + 0x03);
- outb(0x21, probe_ent->port[0].bmdma_addr + 0x01);
- ctr1 = inb(probe_ent->port[0].bmdma_addr + 0x03);
-
- outb(0x20, probe_ent->port[1].bmdma_addr + 0x01);
- ctr2 = inb(probe_ent->port[1].bmdma_addr + 0x03);
- outb(0x21, probe_ent->port[1].bmdma_addr + 0x01);
- ctr3 = inb(probe_ent->port[1].bmdma_addr + 0x03);
-
- start_count = (ctr3 << 23 ) | (ctr2 << 15) | (ctr1 << 8) | ctr0;
-
- PDPRINTK("ctr0[%lX] ctr1[%lX] ctr2 [%lX] ctr3 [%lX]\n", ctr0, ctr1, ctr2, ctr3);
+ start_count = pdc_read_counter(probe_ent);
/* Start the test mode */
outb(0x01, probe_ent->port[0].bmdma_addr + 0x01);
@@ -592,19 +603,7 @@
udelay(1000);
/* Read the counter values again */
- outb(0x20, probe_ent->port[0].bmdma_addr + 0x01);
- ctr0 = inb(probe_ent->port[0].bmdma_addr + 0x03);
- outb(0x21, probe_ent->port[0].bmdma_addr + 0x01);
- ctr1 = inb(probe_ent->port[0].bmdma_addr + 0x03);
-
- outb(0x20, probe_ent->port[1].bmdma_addr + 0x01);
- ctr2 = inb(probe_ent->port[1].bmdma_addr + 0x03);
- outb(0x21, probe_ent->port[1].bmdma_addr + 0x01);
- ctr3 = inb(probe_ent->port[1].bmdma_addr + 0x03);
-
- end_count = (ctr3 << 23 ) | (ctr2 << 15) | (ctr1 << 8) | ctr0;
-
- PDPRINTK("ctr0[%lX] ctr1[%lX] ctr2 [%lX] ctr3 [%lX]\n", ctr0, ctr1, ctr2, ctr3);
+ end_count = pdc_read_counter(probe_ent);
/* Stop the test mode */
outb(0x01, probe_ent->port[0].bmdma_addr + 0x01);
next prev parent reply other threads:[~2005-04-11 10:07 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-11 9:57 [PATCH 0/4] libata-dev-2.6: pdc2027x PLL input clock detection fix, etc Albert Lee
2005-04-11 10:02 ` [PATCH 1/4] libata-dev-2.6: pdc2027x add ata_scsi_ioctl Albert Lee
2005-05-16 2:38 ` Jeff Garzik
2005-04-11 10:04 ` [PATCH 2/4] libata-dev-2.6: pdc2027x change comments Albert Lee
2005-04-11 10:06 ` Albert Lee [this message]
2005-04-11 10:11 ` [PATCH 0/4] libata-dev-2.6: pdc2027x PLL input clock detection fix, etc Albert Lee
2005-04-11 10:28 ` [PATCH 4/4] libata-dev-2.6: pdc2027x PLL input clock detection fix Albert Lee
2005-04-17 1:54 ` [PATCH 2.6.12-rc2 0/2] libata: add reporting of atapi errors Eric A. Cottrell
2005-04-19 6:08 ` [PATCH 1/1] libata-dev-2.6: pdc2027x ATAPI DMA fix Albert Lee
2005-04-27 8:55 ` Albert Lee
2005-04-29 3:19 ` [PATCH 1/1] libata-dev-2.6: pdc2027x yet another PLL fix Albert Lee
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=425A4C36.5040106@tw.ibm.com \
--to=albertcc@tw.ibm.com \
--cc=bzolnier@gmail.com \
--cc=dwm@maxeymade.com \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
/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.