You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.7 KiB
Diff
50 lines
1.7 KiB
Diff
Bugzilla 1647. This patch resets PCI which fixes the USB problem on mcf5475.
|
|
|
|
Set PCI registers MCF_PCIGSCR and MCF_PCITCR to their reset defaults.
|
|
This fixes the USB problem and enables other PCI cards, such as PCI
|
|
network to function properly.
|
|
|
|
Original work of Matt Waddel
|
|
Signed-off-by: Ross Wille
|
|
|
|
--- a/arch/m68k/coldfire/mcf548x-pci.c
|
|
+++ b/arch/m68k/coldfire/mcf548x-pci.c
|
|
@@ -1,5 +1,23 @@
|
|
/*
|
|
* ColdFire 547x/548x PCI Host Controller functions
|
|
+ *
|
|
+ * Copyright (c) 2005-2008 Freescale Semiconductor, Inc.
|
|
+ *
|
|
+ * This code is based on the 2.6.10 version of pci.c
|
|
+ *
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
+ * it under the terms of the GNU General Public License as published by
|
|
+ * the Free Software Foundation; either version 2 of the License, or
|
|
+ * (at your option) any later version.
|
|
+ *
|
|
+ * This program is distributed in the hope that it will be useful,
|
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * GNU General Public License for more details.
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License
|
|
+ * along with this program; if not, write to the Free Software
|
|
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
#include <linux/kernel.h>
|
|
#include <linux/types.h>
|
|
@@ -815,6 +833,13 @@ struct pci_bus_info *__init init_coldfir
|
|
return NULL;
|
|
}
|
|
|
|
+ /* Must Reset!!! If bootloader has PCI enabled, it will cause
|
|
+ * problem in linux when it tries to configure/find resources
|
|
+ * for the pci devices. Both registers need to be reset.
|
|
+ */
|
|
+ MCF_PCIGSCR = 0x1;
|
|
+ MCF_PCITCR = 0x00000000;
|
|
+
|
|
/* Set up the arbiter */
|
|
MCF_PCIARB_PACR = 0 /*MCF_PCIARB_PACR_PKMD*/
|
|
| MCF_PCIARB_PACR_INTMPRI
|