#endif
 };
 
-static ssize_t ssb_pci_attr_sprom_show(struct device *pcidev,
-                                      struct device_attribute *attr,
-                                      char *buf)
+static ssize_t ssb_sprom_show(struct device *pcidev,
+                             struct device_attribute *attr,
+                             char *buf)
 {
        struct pci_dev *pdev = container_of(pcidev, struct pci_dev, dev);
        struct ssb_bus *bus;
        return ssb_attr_sprom_show(bus, buf, sprom_do_read);
 }
 
-static ssize_t ssb_pci_attr_sprom_store(struct device *pcidev,
-                                       struct device_attribute *attr,
-                                       const char *buf, size_t count)
+static ssize_t ssb_sprom_store(struct device *pcidev,
+                              struct device_attribute *attr,
+                              const char *buf, size_t count)
 {
        struct pci_dev *pdev = container_of(pcidev, struct pci_dev, dev);
        struct ssb_bus *bus;
                                    sprom_check_crc, sprom_do_write);
 }
 
-static DEVICE_ATTR(ssb_sprom, 0600,
-                  ssb_pci_attr_sprom_show,
-                  ssb_pci_attr_sprom_store);
+static DEVICE_ATTR_ADMIN_RW(ssb_sprom);
 
 void ssb_pci_exit(struct ssb_bus *bus)
 {
 
        return -ENODEV;
 }
 
-static ssize_t ssb_pcmcia_attr_sprom_show(struct device *pcmciadev,
-                                         struct device_attribute *attr,
-                                         char *buf)
+static ssize_t ssb_sprom_show(struct device *pcmciadev,
+                             struct device_attribute *attr,
+                             char *buf)
 {
        struct pcmcia_device *pdev =
                container_of(pcmciadev, struct pcmcia_device, dev);
                                   ssb_pcmcia_sprom_read_all);
 }
 
-static ssize_t ssb_pcmcia_attr_sprom_store(struct device *pcmciadev,
-                                          struct device_attribute *attr,
-                                          const char *buf, size_t count)
+static ssize_t ssb_sprom_store(struct device *pcmciadev,
+                              struct device_attribute *attr,
+                              const char *buf, size_t count)
 {
        struct pcmcia_device *pdev =
                container_of(pcmciadev, struct pcmcia_device, dev);
                                    ssb_pcmcia_sprom_write_all);
 }
 
-static DEVICE_ATTR(ssb_sprom, 0600,
-                  ssb_pcmcia_attr_sprom_show,
-                  ssb_pcmcia_attr_sprom_store);
+static DEVICE_ATTR_ADMIN_RW(ssb_sprom);
 
 static int ssb_pcmcia_cor_setup(struct ssb_bus *bus, u8 cor)
 {