* SysFS Attributes
******************************************************/
-static ssize_t show_attr(struct device *dev, struct device_attribute *attr,
- char *buf)
+static struct kp2000_device *get_pcard(struct device *dev)
{
struct pci_dev *pdev = to_pci_dev(dev);
- struct kp2000_device *pcard;
if (!pdev)
- return -ENXIO;
- pcard = pci_get_drvdata(pdev);
+ return NULL;
+
+ return pci_get_drvdata(pdev);
+}
+
+static ssize_t show_attr(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ struct kp2000_device *pcard = get_pcard(dev);
+
if (!pcard)
return -ENXIO;
static ssize_t show_cpld_config_reg(struct device *dev,
struct device_attribute *attr, char *buf)
{
- struct pci_dev *pdev = to_pci_dev(dev);
- struct kp2000_device *pcard;
+ struct kp2000_device *pcard = get_pcard(dev);
u64 val;
- if (!pdev)
- return -ENXIO;
-
- pcard = pci_get_drvdata(pdev);
if (!pcard)
return -ENXIO;
struct device_attribute *attr,
const char *buf, size_t count)
{
- struct pci_dev *pdev = to_pci_dev(dev);
+ struct kp2000_device *pcard = get_pcard(dev);
long wr_val;
- struct kp2000_device *pcard;
int rv;
- if (!pdev)
- return -ENXIO;
- pcard = pci_get_drvdata(pdev);
if (!pcard)
return -ENXIO;