From: Michael Schmitz <schmitzmic@gmail.com> To: linux-m68k@vger.kernel.org, linux-ide@vger.kernel.org, b.zolnierkie@samsung.com Cc: schmitz@debian.org, Michael Schmitz <schmitzmic@gmail.com>, Geert Uytterhoeven <geert@linux-m68k.org> Subject: [PATCH] ide: falconide: convert to platform driver Date: Tue, 5 Nov 2019 19:37:52 +1300 Message-ID: <1572935872-28394-1-git-send-email-schmitzmic@gmail.com> (raw) In-Reply-To: <4cb95fe6-c2ea-0195-9124-fc2e1223ab38@gmail.com> With the introduction of a platform device for the Atari Falcon IDE interface, the old Falcon IDE driver no longer loads (resource already claimed by the platform device). Convert falconide driver to use the same platform device that is used by pata_falcon also. Tested (as built-in driver) on my Atari Falcon. Signed-off-by: Michael Schmitz <schmitzmic@gmail.com> CC: Geert Uytterhoeven <geert@linux-m68k.org> --- drivers/ide/falconide.c | 45 ++++++++++++++++++++++++++++++++------------- 1 files changed, 32 insertions(+), 13 deletions(-) diff --git a/drivers/ide/falconide.c b/drivers/ide/falconide.c index a5a07cc..d6dd772 100644 --- a/drivers/ide/falconide.c +++ b/drivers/ide/falconide.c @@ -15,6 +15,7 @@ #include <linux/blkdev.h> #include <linux/ide.h> #include <linux/init.h> +#include <linux/platform_device.h> #include <asm/setup.h> #include <asm/atarihw.h> @@ -23,6 +24,7 @@ #include <asm/ide.h> #define DRV_NAME "falconide" +#define DRV_VERSION "0.1.0" /* * Base of the IDE interface @@ -114,18 +116,18 @@ static void falconide_output_data(ide_drive_t *drive, struct ide_cmd *cmd, .chipset = ide_generic, }; -static void __init falconide_setup_ports(struct ide_hw *hw) +static void __init falconide_setup_ports(struct ide_hw *hw, unsigned long base) { int i; memset(hw, 0, sizeof(*hw)); - hw->io_ports.data_addr = ATA_HD_BASE; + hw->io_ports.data_addr = base; for (i = 1; i < 8; i++) - hw->io_ports_array[i] = ATA_HD_BASE + 1 + i * 4; + hw->io_ports_array[i] = base + 1 + i * 4; - hw->io_ports.ctl_addr = ATA_HD_BASE + ATA_HD_CONTROL; + hw->io_ports.ctl_addr = base + ATA_HD_CONTROL; hw->irq = IRQ_MFP_IDE; } @@ -134,23 +136,29 @@ static void __init falconide_setup_ports(struct ide_hw *hw) * Probe for a Falcon IDE interface */ -static int __init falconide_init(void) +static int __init falconide_init(struct platform_device *pdev) { + struct resource *res; struct ide_host *host; struct ide_hw hw, *hws[] = { &hw }; + unsigned long base; int rc; - if (!MACH_IS_ATARI || !ATARIHW_PRESENT(IDE)) - return -ENODEV; + dev_info(&pdev->dev, "Atari Falcon IDE controller\n"); - printk(KERN_INFO "ide: Falcon IDE controller\n"); + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) + return -ENODEV; - if (!request_mem_region(ATA_HD_BASE, 0x40, DRV_NAME)) { - printk(KERN_ERR "%s: resources busy\n", DRV_NAME); + if (!devm_request_mem_region(&pdev->dev, res->start, + resource_size(res), DRV_NAME)) { + dev_err(&pdev->dev, "resources busy\n"); return -EBUSY; } - falconide_setup_ports(&hw); + base = (unsigned long)res->start; + + falconide_setup_ports(&hw, base); host = ide_host_alloc(&falconide_port_info, hws, 1); if (host == NULL) { @@ -169,10 +177,21 @@ static int __init falconide_init(void) err_free: ide_host_free(host); err: - release_mem_region(ATA_HD_BASE, 0x40); + release_mem_region(res->start, resource_size(res)); return rc; } -module_init(falconide_init); +static struct platform_driver ide_falcon_driver = { + .driver = { + .name = "atari-falcon-ide", + }, +}; + +module_platform_driver_probe(ide_falcon_driver, falconide_init); + +MODULE_AUTHOR("Geert Uytterhoeven"); +MODULE_DESCRIPTION("low-level driver for Atari Falcon IDE"); MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:atari-falcon-ide"); +MODULE_VERSION(DRV_VERSION); -- 1.7.0.4
next prev parent reply index Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-09-26 3:54 [PATCH RESEND v2 0/2] Convert Atari Falcon IDE driver to platform device Michael Schmitz 2019-09-26 3:54 ` [PATCH RESEND v2 1/2] m68k/atari: add platform device for Falcon IDE port Michael Schmitz 2019-11-04 10:56 ` Geert Uytterhoeven 2019-11-04 21:09 ` Michael Schmitz 2019-11-05 6:37 ` Michael Schmitz [this message] 2019-11-05 8:11 ` [PATCH] ide: falconide: convert to platform driver Geert Uytterhoeven 2019-11-05 18:31 ` Michael Schmitz 2019-11-05 18:46 ` Geert Uytterhoeven 2019-11-05 20:02 ` Michael Schmitz 2019-11-05 21:13 ` Michael Schmitz 2019-11-05 21:43 ` Geert Uytterhoeven 2019-11-06 1:35 ` Michael Schmitz 2019-11-05 6:43 ` [PATCH RESEND v2 1/2] m68k/atari: add platform device for Falcon IDE port Michael Schmitz 2019-09-26 3:54 ` [PATCH RESEND v2 2/2] drivers/ata: convert pata_falcon to arch platform device Michael Schmitz 2019-11-04 10:58 ` Geert Uytterhoeven 2019-10-25 20:33 ` [PATCH RESEND v2 0/2] Convert Atari Falcon IDE driver to " Jens Axboe 2019-10-26 18:17 ` Geert Uytterhoeven 2019-10-28 7:03 ` Michael Schmitz 2019-11-04 11:04 ` Geert Uytterhoeven 2019-11-04 19:17 ` Michael Schmitz 2019-11-04 20:06 ` Geert Uytterhoeven 2019-11-04 21:10 ` John Paul Adrian Glaubitz 2019-11-04 21:21 ` Michael Schmitz 2019-11-04 21:42 ` John Paul Adrian Glaubitz 2019-11-05 6:57 ` Michael Schmitz 2019-11-06 1:34 ` Michael Schmitz 2019-11-06 2:47 ` [PATCH v3] m68k/atari: convert legacy Falcon IDE driver to platform driver Michael Schmitz 2019-11-18 9:20 ` Geert Uytterhoeven 2019-11-18 9:41 ` John Paul Adrian Glaubitz
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=1572935872-28394-1-git-send-email-schmitzmic@gmail.com \ --to=schmitzmic@gmail.com \ --cc=b.zolnierkie@samsung.com \ --cc=geert@linux-m68k.org \ --cc=linux-ide@vger.kernel.org \ --cc=linux-m68k@vger.kernel.org \ --cc=schmitz@debian.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
Linux-ide Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-ide/0 linux-ide/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-ide linux-ide/ https://lore.kernel.org/linux-ide \ linux-ide@vger.kernel.org public-inbox-index linux-ide Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-ide AGPL code for this site: git clone https://public-inbox.org/public-inbox.git