From: Helge Deller <deller@gmx.de>
To: Krzysztof Helt <krzysztof.h1@poczta.fm>
Cc: linux-parisc@vger.kernel.org,
Linux-fbdev-devel <linux-fbdev-devel@lists.sourceforge.net>,
adaplas@gmail.com, protasnb@gmail.com, jsimmons@infradead.org
Subject: Re: [PATCH] convert sticore.c to PCI ROM API (bugzilla #9425)
Date: Sun, 1 Jun 2008 00:22:23 +0200 [thread overview]
Message-ID: <200806010022.24033.deller@gmx.de> (raw)
In-Reply-To: <20080531191516.ae60240f.krzysztof.h1@poczta.fm>
Hello Krzysztof,
On Saturday 31 May 2008, Krzysztof Helt wrote:
> From: Krzysztof Helt <krzysztof.h1@wp.pl>
>
> Convert console/sticore.c file to use PCI ROM API.
>
> Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
>
> ---
> I don't have cross-compiler nor the hardware so PARISC guys
> please test it.
> [...]
Thanks for the patch.
Below is the fixed version for parisc.
Compile- and run-tested by me.
Please apply.
Helge
------------------------
Convert console/sticore.c file to use PCI ROM API.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Helge Deller <deller@gmx.de>
diff --git a/drivers/video/console/sticore.c b/drivers/video/console/sticore.c
index e9ab657..df30499 100644
--- a/drivers/video/console/sticore.c
+++ b/drivers/video/console/sticore.c
@@ -780,11 +780,13 @@ out_err:
}
static struct sti_struct * __devinit
-sti_try_rom_generic(unsigned long address, unsigned long hpa, struct pci_dev *pd)
+sti_try_rom_generic(unsigned long address, unsigned long hpa,
+ struct pci_dev *pd)
{
+ char __iomem *rom_base = (char __iomem *) address;
struct sti_struct *sti;
int ok;
- u32 sig;
+ __le32 sig;
if (num_sti_roms >= MAX_STI_ROMS) {
printk(KERN_WARNING "maximum number of STI ROMS reached !\n");
@@ -808,7 +810,7 @@ test_rom:
sig = gsc_readl(address);
/* check for a PCI ROM structure */
- if ((le32_to_cpu(sig)==0xaa55)) {
+ if (sig == cpu_to_le32(0xaa55)) {
unsigned int i, rm_offset;
u32 *rm;
i = gsc_readl(address+0x04);
@@ -868,10 +870,8 @@ test_rom:
/* disable STI PCI ROM. ROM and card RAM overlap and
* leaving it enabled would force HPMCs
*/
- if (sti->pd) {
- unsigned long rom_base;
- rom_base = pci_resource_start(sti->pd, PCI_ROM_RESOURCE);
- pci_write_config_dword(sti->pd, PCI_ROM_ADDRESS, rom_base & ~PCI_ROM_ADDRESS_ENABLE);
+ if (sti->pd && rom_base) {
+ pci_unmap_rom(sti->pd, rom_base);
DPRINTK((KERN_DEBUG "STI PCI ROM disabled\n"));
}
@@ -930,28 +930,25 @@ static int __devinit sticore_pci_init(struct pci_dev *pd,
const struct pci_device_id *ent)
{
#ifdef CONFIG_PCI
- unsigned long fb_base, rom_base;
- unsigned int fb_len, rom_len;
+ unsigned long fb_base;
+ unsigned int fb_len;
+ char __iomem *rom_base;
+ size_t rom_len;
struct sti_struct *sti;
pci_enable_device(pd);
fb_base = pci_resource_start(pd, 0);
fb_len = pci_resource_len(pd, 0);
- rom_base = pci_resource_start(pd, PCI_ROM_RESOURCE);
- rom_len = pci_resource_len(pd, PCI_ROM_RESOURCE);
- if (rom_base) {
- pci_write_config_dword(pd, PCI_ROM_ADDRESS, rom_base | PCI_ROM_ADDRESS_ENABLE);
- DPRINTK((KERN_DEBUG "STI PCI ROM enabled at 0x%08lx\n", rom_base));
- }
+ rom_base = pci_map_rom(pd, &rom_len);
- printk(KERN_INFO "STI PCI graphic ROM found at %08lx (%u kB), fb at %08lx (%u MB)\n",
+ printk(KERN_INFO "STI PCI graphic ROM found at %p (%u kB), fb at %08lx (%u MB)\n",
rom_base, rom_len/1024, fb_base, fb_len/1024/1024);
- DPRINTK((KERN_DEBUG "Trying PCI STI ROM at %08lx, PCI hpa at %08lx\n",
+ DPRINTK((KERN_DEBUG "Trying PCI STI ROM at %p, PCI hpa at %08lx\n",
rom_base, fb_base));
- sti = sti_try_rom_generic(rom_base, fb_base, pd);
+ sti = sti_try_rom_generic((unsigned long)rom_base, fb_base, pd);
if (sti) {
char pa_path[30];
print_pci_hwpath(pd, pa_path);
@@ -975,7 +972,7 @@ static void __devexit sticore_pci_remove(struct pci_dev *pd)
}
-static struct pci_device_id sti_pci_tbl[] = {
+DEFINE_PCI_DEVICE_TABLE(sti_pci_tbl) = {
{ PCI_DEVICE(PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_VISUALIZE_EG) },
{ PCI_DEVICE(PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_VISUALIZE_FX6) },
{ PCI_DEVICE(PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_VISUALIZE_FX4) },
next prev parent reply other threads:[~2008-05-31 22:22 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-31 17:15 [PATCH] convert sticore.c to PCI ROM API (bugzilla #9425) Krzysztof Helt
2008-05-31 22:22 ` Helge Deller [this message]
2008-05-31 23:01 ` Krzysztof Helt
2008-06-01 7:03 ` Krzysztof Helt
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=200806010022.24033.deller@gmx.de \
--to=deller@gmx.de \
--cc=adaplas@gmail.com \
--cc=jsimmons@infradead.org \
--cc=krzysztof.h1@poczta.fm \
--cc=linux-fbdev-devel@lists.sourceforge.net \
--cc=linux-parisc@vger.kernel.org \
--cc=protasnb@gmail.com \
/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 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).