diff options
| -rw-r--r-- | drivers/of/address.c | 19 | ||||
| -rw-r--r-- | include/linux/of_address.h | 10 |
2 files changed, 25 insertions, 4 deletions
diff --git a/drivers/of/address.c b/drivers/of/address.c index 792722e7d458..fa6cabfc3cb9 100644 --- a/drivers/of/address.c +++ b/drivers/of/address.c | |||
| @@ -232,8 +232,8 @@ int of_pci_address_to_resource(struct device_node *dev, int bar, | |||
| 232 | } | 232 | } |
| 233 | EXPORT_SYMBOL_GPL(of_pci_address_to_resource); | 233 | EXPORT_SYMBOL_GPL(of_pci_address_to_resource); |
| 234 | 234 | ||
| 235 | int of_pci_range_parser_init(struct of_pci_range_parser *parser, | 235 | static int parser_init(struct of_pci_range_parser *parser, |
| 236 | struct device_node *node) | 236 | struct device_node *node, const char *name) |
| 237 | { | 237 | { |
| 238 | const int na = 3, ns = 2; | 238 | const int na = 3, ns = 2; |
| 239 | int rlen; | 239 | int rlen; |
| @@ -242,7 +242,7 @@ int of_pci_range_parser_init(struct of_pci_range_parser *parser, | |||
| 242 | parser->pna = of_n_addr_cells(node); | 242 | parser->pna = of_n_addr_cells(node); |
| 243 | parser->np = parser->pna + na + ns; | 243 | parser->np = parser->pna + na + ns; |
| 244 | 244 | ||
| 245 | parser->range = of_get_property(node, "ranges", &rlen); | 245 | parser->range = of_get_property(node, name, &rlen); |
| 246 | if (parser->range == NULL) | 246 | if (parser->range == NULL) |
| 247 | return -ENOENT; | 247 | return -ENOENT; |
| 248 | 248 | ||
| @@ -250,8 +250,21 @@ int of_pci_range_parser_init(struct of_pci_range_parser *parser, | |||
| 250 | 250 | ||
| 251 | return 0; | 251 | return 0; |
| 252 | } | 252 | } |
| 253 | |||
| 254 | int of_pci_range_parser_init(struct of_pci_range_parser *parser, | ||
| 255 | struct device_node *node) | ||
| 256 | { | ||
| 257 | return parser_init(parser, node, "ranges"); | ||
| 258 | } | ||
| 253 | EXPORT_SYMBOL_GPL(of_pci_range_parser_init); | 259 | EXPORT_SYMBOL_GPL(of_pci_range_parser_init); |
| 254 | 260 | ||
| 261 | int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser, | ||
| 262 | struct device_node *node) | ||
| 263 | { | ||
| 264 | return parser_init(parser, node, "dma-ranges"); | ||
| 265 | } | ||
| 266 | EXPORT_SYMBOL_GPL(of_pci_dma_range_parser_init); | ||
| 267 | |||
| 255 | struct of_pci_range *of_pci_range_parser_one(struct of_pci_range_parser *parser, | 268 | struct of_pci_range *of_pci_range_parser_one(struct of_pci_range_parser *parser, |
| 256 | struct of_pci_range *range) | 269 | struct of_pci_range *range) |
| 257 | { | 270 | { |
diff --git a/include/linux/of_address.h b/include/linux/of_address.h index 37864734ca50..8beed2de98e9 100644 --- a/include/linux/of_address.h +++ b/include/linux/of_address.h | |||
| @@ -49,6 +49,8 @@ extern const __be32 *of_get_address(struct device_node *dev, int index, | |||
| 49 | 49 | ||
| 50 | extern int of_pci_range_parser_init(struct of_pci_range_parser *parser, | 50 | extern int of_pci_range_parser_init(struct of_pci_range_parser *parser, |
| 51 | struct device_node *node); | 51 | struct device_node *node); |
| 52 | extern int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser, | ||
| 53 | struct device_node *node); | ||
| 52 | extern struct of_pci_range *of_pci_range_parser_one( | 54 | extern struct of_pci_range *of_pci_range_parser_one( |
| 53 | struct of_pci_range_parser *parser, | 55 | struct of_pci_range_parser *parser, |
| 54 | struct of_pci_range *range); | 56 | struct of_pci_range *range); |
| @@ -85,7 +87,13 @@ static inline const __be32 *of_get_address(struct device_node *dev, int index, | |||
| 85 | static inline int of_pci_range_parser_init(struct of_pci_range_parser *parser, | 87 | static inline int of_pci_range_parser_init(struct of_pci_range_parser *parser, |
| 86 | struct device_node *node) | 88 | struct device_node *node) |
| 87 | { | 89 | { |
| 88 | return -1; | 90 | return -ENOSYS; |
| 91 | } | ||
| 92 | |||
| 93 | static inline int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser, | ||
| 94 | struct device_node *node) | ||
| 95 | { | ||
| 96 | return -ENOSYS; | ||
| 89 | } | 97 | } |
| 90 | 98 | ||
| 91 | static inline struct of_pci_range *of_pci_range_parser_one( | 99 | static inline struct of_pci_range *of_pci_range_parser_one( |
