LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: linux-ide@vger.kernel.org
Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH 05/12] cmd640: init hwif->{io_ports,irq} explicitly
Date: Sat, 16 Feb 2008 17:39:25 +0100 [thread overview]
Message-ID: <20080216163925.10174.64230.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20080216163856.10174.72546.sendpatchset@localhost.localdomain>
Do explicit port setup instead of depending on init_ide_data().
This way hwif->io_ports[] and hwif->irq are always correctly set
regardless of CONFIG_PCI / CONFIG_BLK_DEV_IDEPCI.
[ Remember to not break "idex=noprobe" parameter. ]
While at it fix printk().
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/ide/pci/cmd640.c | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
Index: b/drivers/ide/pci/cmd640.c
===================================================================
--- a/drivers/ide/pci/cmd640.c
+++ b/drivers/ide/pci/cmd640.c
@@ -712,8 +712,9 @@ static int __init cmd640x_init(void)
int second_port_cmd640 = 0;
const char *bus_type, *port2;
unsigned int index;
- u8 b, cfr;
+ u8 b, cfr, oldnoprobe;
u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
+ hw_regs_t hw[2];
if (cmd640_vlb && probe_for_cmd640_vlb()) {
bus_type = "VLB";
@@ -752,12 +753,25 @@ static int __init cmd640x_init(void)
return 0;
}
+ memset(&hw, 0, sizeof(hw));
+
+ ide_std_init_ports(&hw[0], 0x1f0, 0x3f6);
+ hw[0].irq = 14;
+
+ ide_std_init_ports(&hw[1], 0x170, 0x376);
+ hw[1].irq = 15;
+
+ printk(KERN_INFO "cmd640: buggy cmd640%c interface on %s, config=0x%02x"
+ "\n", 'a' + cmd640_chip_version - 1, bus_type, cfr);
+
/*
* Initialize data for primary port
*/
setup_device_ptrs ();
- printk("%s: buggy cmd640%c interface on %s, config=0x%02x\n",
- cmd_hwif0->name, 'a' + cmd640_chip_version - 1, bus_type, cfr);
+
+ oldnoprobe = cmd_hwif0->noprobe;
+ ide_init_port_hw(cmd_hwif0, &hw[0]);
+ cmd_hwif0->noprobe = oldnoprobe;
#ifdef CONFIG_BLK_DEV_CMD640_ENHANCED
cmd_hwif0->set_pio_mode = &cmd640_set_pio_mode;
#endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */
@@ -809,6 +823,9 @@ static int __init cmd640x_init(void)
* Initialize data for secondary cmd640 port, if enabled
*/
if (second_port_cmd640) {
+ oldnoprobe = cmd_hwif1->noprobe;
+ ide_init_port_hw(cmd_hwif1, &hw[1]);
+ cmd_hwif1->noprobe = oldnoprobe;
#ifdef CONFIG_BLK_DEV_CMD640_ENHANCED
cmd_hwif1->set_pio_mode = &cmd640_set_pio_mode;
#endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */
next prev parent reply other threads:[~2008-02-16 16:26 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-16 16:38 [PATCH 01/12] ide: remove ide_default_io_ctl() macro Bartlomiej Zolnierkiewicz
2008-02-16 16:39 ` [PATCH 02/12] ide: remove ppc ifdef from init_ide_data() Bartlomiej Zolnierkiewicz
2008-02-16 16:39 ` [PATCH 03/12] ide: add ide-4drives host driver Bartlomiej Zolnierkiewicz
2008-02-16 17:26 ` Randy Dunlap
2008-02-17 17:12 ` Bartlomiej Zolnierkiewicz
2008-02-19 13:03 ` Sergei Shtylyov
2008-02-19 21:24 ` Bartlomiej Zolnierkiewicz
2008-02-16 16:39 ` [PATCH 04/12] cmd640: cleanup setup_device_ptrs() Bartlomiej Zolnierkiewicz
2008-02-16 16:39 ` Bartlomiej Zolnierkiewicz [this message]
2008-02-16 16:39 ` [PATCH 06/12] ide: limit legacy VLB host drivers to alpha, x86 and mips Bartlomiej Zolnierkiewicz
2008-02-16 16:39 ` [PATCH 07/12] ide: init hwif->{io_ports,irq} explicitly in legacy VLB host drivers Bartlomiej Zolnierkiewicz
2008-02-16 16:39 ` [PATCH 08/12] ide: remove needless hwif->irq check from ide_hwif_configure() Bartlomiej Zolnierkiewicz
2008-02-16 16:39 ` [PATCH 09/12] ide: move default IDE ports setup to ide_generic host driver Bartlomiej Zolnierkiewicz
2008-02-16 16:40 ` [PATCH 10/12] ide: remove ide_init_default_irq() macro Bartlomiej Zolnierkiewicz
2008-02-16 16:40 ` [PATCH 11/12] ide: cleanup ide_match_hwif() Bartlomiej Zolnierkiewicz
2008-02-16 16:40 ` [PATCH 12/12] ide: cleanup ide_find_port() Bartlomiej Zolnierkiewicz
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=20080216163925.10174.64230.sendpatchset@localhost.localdomain \
--to=bzolnier@gmail.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--subject='Re: [PATCH 05/12] cmd640: init hwif->{io_ports,irq} explicitly' \
/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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).