cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

platformdata.c (1232B)


      1// SPDX-License-Identifier: GPL-2.0
      2//
      3// Copyright 2010 Ben Dooks <ben-linux <at> fluff.org>
      4//
      5// Helper for platform data setting
      6
      7#include <linux/kernel.h>
      8#include <linux/slab.h>
      9#include <linux/string.h>
     10#include <linux/platform_device.h>
     11
     12#include "devs.h"
     13#include "sdhci.h"
     14
     15void __init *s3c_set_platdata(void *pd, size_t pdsize,
     16			      struct platform_device *pdev)
     17{
     18	void *npd;
     19
     20	if (!pd) {
     21		/* too early to use dev_name(), may not be registered */
     22		printk(KERN_ERR "%s: no platform data supplied\n", pdev->name);
     23		return NULL;
     24	}
     25
     26	npd = kmemdup(pd, pdsize, GFP_KERNEL);
     27	if (!npd)
     28		return NULL;
     29
     30	pdev->dev.platform_data = npd;
     31	return npd;
     32}
     33
     34void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata *pd,
     35			     struct s3c_sdhci_platdata *set)
     36{
     37	set->cd_type = pd->cd_type;
     38	set->ext_cd_init = pd->ext_cd_init;
     39	set->ext_cd_cleanup = pd->ext_cd_cleanup;
     40	set->ext_cd_gpio = pd->ext_cd_gpio;
     41	set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert;
     42
     43	if (pd->max_width)
     44		set->max_width = pd->max_width;
     45	if (pd->cfg_gpio)
     46		set->cfg_gpio = pd->cfg_gpio;
     47	if (pd->host_caps)
     48		set->host_caps |= pd->host_caps;
     49	if (pd->host_caps2)
     50		set->host_caps2 |= pd->host_caps2;
     51	if (pd->pm_caps)
     52		set->pm_caps |= pd->pm_caps;
     53}