i2c-piix4.c (03ab8e6297acd1bc0eedaa050e2a1635c576fd11) | i2c-piix4.c (8ad59b397f86a4d8014966fdc0552095a0c4fb2b) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 Copyright (c) 1998 - 2002 Frodo Looijaard <frodol@dds.nl> and 4 Philip Edelbrock <phil@netroedge.com> 5 6*/ 7 8/* --- 147 unchanged lines hidden (view full) --- 156static u8 piix4_port_shift_sb800; 157static const char *piix4_main_port_names_sb800[PIIX4_MAX_ADAPTERS] = { 158 " port 0", " port 2", " port 3", " port 4" 159}; 160static const char *piix4_aux_port_name_sb800 = " port 1"; 161 162struct sb800_mmio_cfg { 163 void __iomem *addr; | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 Copyright (c) 1998 - 2002 Frodo Looijaard <frodol@dds.nl> and 4 Philip Edelbrock <phil@netroedge.com> 5 6*/ 7 8/* --- 147 unchanged lines hidden (view full) --- 156static u8 piix4_port_shift_sb800; 157static const char *piix4_main_port_names_sb800[PIIX4_MAX_ADAPTERS] = { 158 " port 0", " port 2", " port 3", " port 4" 159}; 160static const char *piix4_aux_port_name_sb800 = " port 1"; 161 162struct sb800_mmio_cfg { 163 void __iomem *addr; |
164 struct resource *res; | |
165 bool use_mmio; 166}; 167 168struct i2c_piix4_adapdata { 169 unsigned short smba; 170 171 /* SB800 */ 172 bool sb800_main; 173 bool notify_imc; 174 u8 port; /* Port number, shifted */ 175 struct sb800_mmio_cfg mmio_cfg; 176}; 177 178static int piix4_sb800_region_request(struct device *dev, 179 struct sb800_mmio_cfg *mmio_cfg) 180{ 181 if (mmio_cfg->use_mmio) { | 164 bool use_mmio; 165}; 166 167struct i2c_piix4_adapdata { 168 unsigned short smba; 169 170 /* SB800 */ 171 bool sb800_main; 172 bool notify_imc; 173 u8 port; /* Port number, shifted */ 174 struct sb800_mmio_cfg mmio_cfg; 175}; 176 177static int piix4_sb800_region_request(struct device *dev, 178 struct sb800_mmio_cfg *mmio_cfg) 179{ 180 if (mmio_cfg->use_mmio) { |
182 struct resource *res; | |
183 void __iomem *addr; 184 | 181 void __iomem *addr; 182 |
185 res = request_mem_region_muxed(SB800_PIIX4_FCH_PM_ADDR, 186 SB800_PIIX4_FCH_PM_SIZE, 187 "sb800_piix4_smb"); 188 if (!res) { | 183 if (!request_mem_region_muxed(SB800_PIIX4_FCH_PM_ADDR, 184 SB800_PIIX4_FCH_PM_SIZE, 185 "sb800_piix4_smb")) { |
189 dev_err(dev, 190 "SMBus base address memory region 0x%x already in use.\n", 191 SB800_PIIX4_FCH_PM_ADDR); 192 return -EBUSY; 193 } 194 195 addr = ioremap(SB800_PIIX4_FCH_PM_ADDR, 196 SB800_PIIX4_FCH_PM_SIZE); 197 if (!addr) { | 186 dev_err(dev, 187 "SMBus base address memory region 0x%x already in use.\n", 188 SB800_PIIX4_FCH_PM_ADDR); 189 return -EBUSY; 190 } 191 192 addr = ioremap(SB800_PIIX4_FCH_PM_ADDR, 193 SB800_PIIX4_FCH_PM_SIZE); 194 if (!addr) { |
198 release_resource(res); | 195 release_mem_region(SB800_PIIX4_FCH_PM_ADDR, 196 SB800_PIIX4_FCH_PM_SIZE); |
199 dev_err(dev, "SMBus base address mapping failed.\n"); 200 return -ENOMEM; 201 } 202 | 197 dev_err(dev, "SMBus base address mapping failed.\n"); 198 return -ENOMEM; 199 } 200 |
203 mmio_cfg->res = res; | |
204 mmio_cfg->addr = addr; 205 206 return 0; 207 } 208 209 if (!request_muxed_region(SB800_PIIX4_SMB_IDX, SB800_PIIX4_SMB_MAP_SIZE, 210 "sb800_piix4_smb")) { 211 dev_err(dev, --- 5 unchanged lines hidden (view full) --- 217 return 0; 218} 219 220static void piix4_sb800_region_release(struct device *dev, 221 struct sb800_mmio_cfg *mmio_cfg) 222{ 223 if (mmio_cfg->use_mmio) { 224 iounmap(mmio_cfg->addr); | 201 mmio_cfg->addr = addr; 202 203 return 0; 204 } 205 206 if (!request_muxed_region(SB800_PIIX4_SMB_IDX, SB800_PIIX4_SMB_MAP_SIZE, 207 "sb800_piix4_smb")) { 208 dev_err(dev, --- 5 unchanged lines hidden (view full) --- 214 return 0; 215} 216 217static void piix4_sb800_region_release(struct device *dev, 218 struct sb800_mmio_cfg *mmio_cfg) 219{ 220 if (mmio_cfg->use_mmio) { 221 iounmap(mmio_cfg->addr); |
225 release_resource(mmio_cfg->res); | 222 release_mem_region(SB800_PIIX4_FCH_PM_ADDR, 223 SB800_PIIX4_FCH_PM_SIZE); |
226 return; 227 } 228 229 release_region(SB800_PIIX4_SMB_IDX, SB800_PIIX4_SMB_MAP_SIZE); 230} 231 232static bool piix4_sb800_use_mmio(struct pci_dev *PIIX4_dev) 233{ --- 926 unchanged lines hidden --- | 224 return; 225 } 226 227 release_region(SB800_PIIX4_SMB_IDX, SB800_PIIX4_SMB_MAP_SIZE); 228} 229 230static bool piix4_sb800_use_mmio(struct pci_dev *PIIX4_dev) 231{ --- 926 unchanged lines hidden --- |