Lines Matching +full:data +full:- +full:shift
2 * ops-vr41xx.c, PCI configuration routines for the PCIU of NEC VR4100 series.
4 * Copyright (C) 2001-2003 MontaVista Software Inc.
6 * Copyright (C) 2004-2005 Yoichi Yuasa <yuasa@linux-mips.org>
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 * - New creation, NEC VR4122 and VR4131 are supported.
43 return -EINVAL; in set_pci_configuration_address()
52 return -EINVAL; in set_pci_configuration_address()
64 uint32_t data; in pci_config_read() local
67 if (set_pci_configuration_address(bus->number, devfn, where) < 0) in pci_config_read()
70 data = readl(PCICONFDREG); in pci_config_read()
74 *val = (data >> ((where & 3) << 3)) & 0xffU; in pci_config_read()
77 *val = (data >> ((where & 2) << 3)) & 0xffffU; in pci_config_read()
80 *val = data; in pci_config_read()
92 uint32_t data; in pci_config_write() local
93 int shift; in pci_config_write() local
95 if (set_pci_configuration_address(bus->number, devfn, where) < 0) in pci_config_write()
98 data = readl(PCICONFDREG); in pci_config_write()
102 shift = (where & 3) << 3; in pci_config_write()
103 data &= ~(0xffU << shift); in pci_config_write()
104 data |= ((val & 0xffU) << shift); in pci_config_write()
107 shift = (where & 2) << 3; in pci_config_write()
108 data &= ~(0xffffU << shift); in pci_config_write()
109 data |= ((val & 0xffffU) << shift); in pci_config_write()
112 data = val; in pci_config_write()
118 writel(data, PCICONFDREG); in pci_config_write()