@@ -241,10 +241,8 @@ struct v3_pci {
241
241
void __iomem * config_base ;
242
242
struct pci_bus * bus ;
243
243
u32 config_mem ;
244
- u32 io_mem ;
245
244
u32 non_pre_mem ;
246
245
u32 pre_mem ;
247
- phys_addr_t io_bus_addr ;
248
246
phys_addr_t non_pre_bus_addr ;
249
247
phys_addr_t pre_bus_addr ;
250
248
struct regmap * map ;
@@ -520,35 +518,22 @@ static int v3_integrator_init(struct v3_pci *v3)
520
518
}
521
519
522
520
static int v3_pci_setup_resource (struct v3_pci * v3 ,
523
- resource_size_t io_base ,
524
521
struct pci_host_bridge * host ,
525
522
struct resource_entry * win )
526
523
{
527
524
struct device * dev = v3 -> dev ;
528
525
struct resource * mem ;
529
526
struct resource * io ;
530
- int ret ;
531
527
532
528
switch (resource_type (win -> res )) {
533
529
case IORESOURCE_IO :
534
530
io = win -> res ;
535
- io -> name = "V3 PCI I/O" ;
536
- v3 -> io_mem = io_base ;
537
- v3 -> io_bus_addr = io -> start - win -> offset ;
538
- dev_dbg (dev , "I/O window %pR, bus addr %pap\n" ,
539
- io , & v3 -> io_bus_addr );
540
- ret = devm_pci_remap_iospace (dev , io , io_base );
541
- if (ret ) {
542
- dev_warn (dev ,
543
- "error %d: failed to map resource %pR\n" ,
544
- ret , io );
545
- return ret ;
546
- }
531
+
547
532
/* Setup window 2 - PCI I/O */
548
- writel (v3_addr_to_lb_base2 (v3 -> io_mem ) |
533
+ writel (v3_addr_to_lb_base2 (pci_pio_to_address ( io -> start ) ) |
549
534
V3_LB_BASE2_ENABLE ,
550
535
v3 -> base + V3_LB_BASE2 );
551
- writew (v3_addr_to_lb_map2 (v3 -> io_bus_addr ),
536
+ writew (v3_addr_to_lb_map2 (io -> start - win -> offset ),
552
537
v3 -> base + V3_LB_MAP2 );
553
538
break ;
554
539
case IORESOURCE_MEM :
@@ -732,7 +717,6 @@ static int v3_pci_probe(struct platform_device *pdev)
732
717
{
733
718
struct device * dev = & pdev -> dev ;
734
719
struct device_node * np = dev -> of_node ;
735
- resource_size_t io_base ;
736
720
struct resource * regs ;
737
721
struct resource_entry * win ;
738
722
struct v3_pci * v3 ;
@@ -741,7 +725,6 @@ static int v3_pci_probe(struct platform_device *pdev)
741
725
u16 val ;
742
726
int irq ;
743
727
int ret ;
744
- LIST_HEAD (res );
745
728
746
729
host = pci_alloc_host_bridge (sizeof (* v3 ));
747
730
if (!host )
@@ -793,12 +776,7 @@ static int v3_pci_probe(struct platform_device *pdev)
793
776
if (IS_ERR (v3 -> config_base ))
794
777
return PTR_ERR (v3 -> config_base );
795
778
796
- ret = devm_of_pci_get_host_bridge_resources (dev , 0 , 0xff , & res ,
797
- & io_base );
798
- if (ret )
799
- return ret ;
800
-
801
- ret = devm_request_pci_bus_resources (dev , & res );
779
+ ret = pci_parse_request_of_pci_ranges (dev , & host -> windows , NULL );
802
780
if (ret )
803
781
return ret ;
804
782
@@ -852,8 +830,8 @@ static int v3_pci_probe(struct platform_device *pdev)
852
830
writew (val , v3 -> base + V3_PCI_CMD );
853
831
854
832
/* Get the I/O and memory ranges from DT */
855
- resource_list_for_each_entry (win , & res ) {
856
- ret = v3_pci_setup_resource (v3 , io_base , host , win );
833
+ resource_list_for_each_entry (win , & host -> windows ) {
834
+ ret = v3_pci_setup_resource (v3 , host , win );
857
835
if (ret ) {
858
836
dev_err (dev , "error setting up resources\n" );
859
837
return ret ;
@@ -931,7 +909,6 @@ static int v3_pci_probe(struct platform_device *pdev)
931
909
val |= V3_SYSTEM_M_LOCK ;
932
910
writew (val , v3 -> base + V3_SYSTEM );
933
911
934
- list_splice_init (& res , & host -> windows );
935
912
ret = pci_scan_root_bus_bridge (host );
936
913
if (ret ) {
937
914
dev_err (dev , "failed to register host: %d\n" , ret );
0 commit comments