Re: [PATCH v4 REPOST 0/8] clean up wlan_bssdef.h

2015-08-06 Thread Dan Carpenter
On Wed, Aug 05, 2015 at 05:17:13PM -0700, Joshua Clayton wrote:
> I posted v4 of this patch set a week ago and there have been no 
> comments. I hope this is a good sign that the patches are good.
> However, I have noticed that I managed to use the same message id
> for the coverletter of v4 as for v3, which might have caused people 
> to hold off reviewing, perhaps thinking that earlier comments
> had not been addressed.
> 

No.  No one reads cover letters.  If there are no comments it means the
peanut gallery is fine with it, and Greg hasn't gotten around to it yet.

Please don't repost patches unless asked.

You would think we would scramble around like panicked rabbits to fix
the potential buffer overrun but actually we just treat it like a normal
patch so it will take a bit to get merged.

Greg will email you when he gets to the patches, if they are merged or
if there is a problem.

regards,
dan carpenter

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v2 00/46] staging: comedi: me4000: cleanup driver

2015-08-06 Thread Ian Abbott

On 05/08/15 18:44, H Hartley Sweeten wrote:

Here's the big cleanup series for the Comedi me4000 driver.

This fixes all the checkpatch issues and removes a bunch of cruft
from the driver.

v2: Address some issues pointed out by Ian Abbott, the comedi core
 does not validate the 'aref' so the driver needs to handle it.

H Hartley Sweeten (46):
   staging: comedi: me4000: remove 'dio_nchan' boardinfo
   staging: comedi: me4000: all board types have analog inputs
   staging: comedi: me4000: only set SDF_DIFF when supported
   staging: comedi: me4000: remove 'chan' check in me4000_ai_insn_read()
   staging: comedi: me4000: remove 'board' from me4000_ai_insn_read()
   staging: comedi: me4000: remove 'board' from me4000_ai_check_chanlist()
   staging: comedi: me4000: make boardinfo flags bit-fields
   staging: comedi: me4000: refactor 'ai_diff_nchan' boardinfo
   staging: comedi: me4000: refactor 'ao_nchan' boardinfo
   staging: comedi: me4000: refactor 'ao_fifo' boardinfo
   staging: comedi: me4000: refactor 'ai_sh_nchan' boardinfo
   staging: comedi: me4000: rename local variables used for 'dev->private'
   staging: comedi: me4000: remove unnecessary ME4000_AI_LIST_INPUT_SINGLE_ENDED
   staging: comedi: me4000: simplify analog input range programming
   staging: comedi: me4000: fix ai_write_chanlist()
   staging: comedi: me4000: tidy up ME4000_AI_CHANNEL_LIST_REG bit defines
   staging: comedi: me4000: use comedi_timeout() to wait for ai (*insn_read)
   staging: comedi: me4000: fix me4000_ai_insn_read()
   staging: comedi: me4000: use correct types for extracted chanspec values
   staging: comedi: me4000: use comedi_range_is_bipolar() in ai (*insn_read)
   staging: comedi: me4000: tidy up ME4000_AI_STATUS_REG bit defines
   staging: comedi: me4000: tidy up ME4000_AI_CTRL_REG bit defines
   staging: comedi: me4000: tidy up ME4000_IRQ_STATUS_REG bit defines
   staging: comedi: me4000: tidy up ME4000_AO_STATUS_REG bit defines
   staging: comedi: me4000: tidy up ME4000_AO_CTRL_REG bit defines
   staging: comedi: me4000: tidy up ME4000_DIO_CTRL_REG bit defines
   staging: comedi: me4000: return void from ai_round_cmd_args()
   staging: comedi: me4000: move ai command timing values into private data
   staging: comedi: me4000: simplify ai_prepare()
   staging: comedi: me4000: absorb ai_prepare()
   staging: comedi: me4000: absorb ai_write_timer()
   staging: comedi: me4000: return void from me4000_ai_write_chanlist()
   staging: comedi: me4000: fix me4000_ai_cancel()
   staging: comedi: me4000: remove unnecessary ai control register reset
   staging: comedi: me4000: remove unnecessary me4000_ai_cancel()
   staging: comedi: me4000: clear the ME4000_AI_CTRL_REG in me4000_reset()
   staging: comedi: me4000: introduce me4000_ai_reset()
   staging: comedi: me4000: only enable PLX interrupt if we have and irq
   staging: comedi: me4000: fix me4000_detach()
   staging: comedi: me4000: tidy up analog output subdevice init
   staging: comedi: me4000: comedi_handle_events() will stop conversions
   staging: comedi: me4000: introduce me4000_ai_get_sample()
   staging: comedi: me4000: usleep_range is preferred over udelay
   staging: comedi: me4000: cleanup multi-line comments
   staging: comedi: me4000: updata driver status in comedi comment
   staging: comedi: me4000: update MODULE_DESCRIPTION

  drivers/staging/comedi/drivers/me4000.c | 1000 +--
  1 file changed, 422 insertions(+), 578 deletions(-)



Reviewed-by: Ian Abbott 

--
-=( Ian Abbott @ MEV Ltd.E-mail:  )=-
-=(  Web: http://www.mev.co.uk/  )=-
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: rtl8723au: Fix sparse warning: cast to restricted __le16

2015-08-06 Thread Johannes Postma
usPtr is used as __le16 *, but was defined as u16 *.
This was reported by sparse as:
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:1850:29: warning: cast to
restricted __le16

This patch fixes the type of usPtr.

Signed-off-by: Johannes Postma 
---
 drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c 
b/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c
index cb5076a..eb76ac4 100644
--- a/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c
+++ b/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c
@@ -1838,7 +1838,7 @@ Hal_EfuseParseThermalMeter_8723A(struct rtw_adapter 
*padapter,
 
 static void rtl8723a_cal_txdesc_chksum(struct tx_desc *ptxdesc)
 {
-   u16 *usPtr = (u16 *) ptxdesc;
+   __le16 *usPtr = (__le16 *)ptxdesc;
u32 count = 16; /*  (32 bytes / 2 bytes per XOR) => 16 times */
u32 index;
u16 checksum = 0;
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: rtl8723au: Fix sparse warning: cast to restricted __le16

2015-08-06 Thread Jes Sorensen
Johannes Postma  writes:
> usPtr is used as __le16 *, but was defined as u16 *.
> This was reported by sparse as:
> drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:1850:29: warning: cast to
> restricted __le16
>
> This patch fixes the type of usPtr.
>
> Signed-off-by: Johannes Postma 
> ---
>  drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Looks OK to me. Probably worth changing the *(usPtr + index) to be
usPtr[index] as well to make the code easier to read.

Jes

> diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c 
> b/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c
> index cb5076a..eb76ac4 100644
> --- a/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c
> +++ b/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c
> @@ -1838,7 +1838,7 @@ Hal_EfuseParseThermalMeter_8723A(struct rtw_adapter 
> *padapter,
>  
>  static void rtl8723a_cal_txdesc_chksum(struct tx_desc *ptxdesc)
>  {
> - u16 *usPtr = (u16 *) ptxdesc;
> + __le16 *usPtr = (__le16 *)ptxdesc;
>   u32 count = 16; /*  (32 bytes / 2 bytes per XOR) => 16 times */
>   u32 index;
>   u16 checksum = 0;
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 4/6] drivers, staging, unisys Add visorbus module autoloading code

2015-08-06 Thread Dan Carpenter
On Mon, Aug 03, 2015 at 01:21:35PM -0400, Prarit Bhargava wrote:
> 
> On 07/31/2015 07:07 PM, Greg KH wrote:> On Fri, Jul 24, 2015 at 12:06:54PM 
> -0400, Benjamin Romer wrote:
> >> From: Prarit Bhargava 
> >>
> >> This patch adds an module alias and a MODULE_DEVICE_TABLE to autoload the
> >> visorhba driver when an appropriate device is created by the visorbus.
> >>
> >> Signed-off-by: Prarit Bhargava 
> >> ---
> >>  drivers/staging/unisys/visorhba/visorhba_main.c | 2 ++
> >>  1 file changed, 2 insertions(+)
> >>
> >> diff --git a/drivers/staging/unisys/visorhba/visorhba_main.c 
> >> b/drivers/staging/unisys/visorhba/visorhba_main.c
> >> index 031c6fa..50ecdf2 100644
> >> --- a/drivers/staging/unisys/visorhba/visorhba_main.c
> >> +++ b/drivers/staging/unisys/visorhba/visorhba_main.c
> >> @@ -80,6 +80,8 @@ static struct visor_driver visorhba_driver = {
> >>.resume = visorhba_resume,
> >>.channel_interrupt = NULL,
> >>  };
> >> +MODULE_DEVICE_TABLE(visorbus, visorhba_channel_types);
> >> +MODULE_ALIAS("visorbus:" SPAR_VHBA_CHANNEL_PROTOCOL_UUID_STR);
> > 
> > You shouldn't have to write MODULE_ALIAS lines "by hand", they should be
> > generated for you automagically from the MODULE_DEVICE_TABLE() define,
> > if you do it right.
> > 
> > You all didn't do it right :)
> > 
> 
> Greg,
> 
> I need further clarification on the right approach for the autoload code.
> 
> In order to "do it right" I would have to do something like the following
> which would correctly add module alias entries for the visorbus bus.
> The issue that I have with this patch is that it touches code outside
> of drivers/staging for a driver that is solely within drivers/staging.
> 

Yeah.  Don't do that.

> Is modifying non drivers/staging okay to do?  Or is simply doing
> 
> MODULE_ALIAS("visorbus:" SPAR_VHBA_CHANNEL_PROTOCOL_UUID_STR);
> 
> with a loud /* FIXME before submitting ... */ warning a better approach?
> 

I'm not Greg, but I would go with this approach.  Put the file2alias.c
change in the FIXME comment so we can just copy it over after the driver
is merged.

regards,
dan carpenter

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


邮件在线

2015-08-06 Thread ltmp
提供各种發票
电话;13714181682
QQ;2687517760
钱经理



___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


randconfig build error with next-20150806, in arch/x86/kernel/cpu/mshyperv.c

2015-08-06 Thread Jim Davis
Building with the attached random configuration file,

warning: (INTEL_MIC_HOST && CAIF_VIRTIO && VHOST_NET && VHOST_SCSI &&
VHOST_NET && VHOST_SCSI) selects VHOST_RING which has unmet direct
dependencies (NETDEVICES && CAIF_VIRTIO || VIRTUALIZATION)

arch/x86/built-in.o: In function `hv_machine_crash_shutdown':
/home/jim/linux-next/arch/x86/kernel/cpu/mshyperv.c:112: undefined
reference to `native_machine_crash_shutdown'

-- 
Jim
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.2.0-rc5 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ZONE_DMA32=y
CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_X86_64_SMP=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx 
-fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 
-fcall-saved-r11"
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_PGTABLE_LEVELS=4
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
# CONFIG_SYSVIPC is not set
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_FHANDLE=y
CONFIG_USELIB=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_HZ_PERIODIC=y
# CONFIG_NO_HZ_IDLE is not set
# CONFIG_NO_HZ_FULL is not set
# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set

#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
# CONFIG_RCU_EXPERT is not set
CONFIG_SRCU=y
CONFIG_TASKS_RCU=y
CONFIG_RCU_STALL_COMMON=y
CONFIG_TREE_RCU_TRACE=y
# CONFIG_RCU_EXPEDITE_BOOT is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=m
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_ARCH_SUPPORTS_INT128=y
# CONFIG_NUMA_BALANCING is not set
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEBUG=y
CONFIG_CGROUP_FREEZER=y
# CONFIG_CGROUP_PIDS is not set
# CONFIG_CGROUP_DEVICE is not set
# CONFIG_CPUSETS is not set
# CONFIG_CGROUP_CPUACCT is not set
CONFIG_PAGE_COUNTER=y
# CONFIG_MEMCG is not set
CONFIG_CGROUP_HUGETLB=y
# CONFIG_CGROUP_PERF is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
# CONFIG_CFS_BANDWIDTH is not set
CONFIG_RT_GROUP_SCHED=y
# CONFIG_CHECKPOINT_RESTORE is not set
# CONFIG_NAMESPACES is not set
CONFIG_SCHED_AUTOGROUP=y
# CONFIG_SYSFS_DEPRECATED is not set
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
# CONFIG_RD_LZMA is not set
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
# CONFIG_RD_LZ4 is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_ANON_INODES=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_EXPERT=y
CONFIG_MULTIUSER=y
CONFIG_SGETMASK_SYSCALL=y
CONFIG_SYSFS_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_PRINTK=y
CONFIG_BUG=y
# CONFIG_ELF_CORE is not set
CONFIG_PCSPKR_PLAT

Re: [PATCH v3 2/3] drivers: staging: wilc1000: move { to previous line

2015-08-06 Thread Chandra Gorentla
On Wed, Aug 05, 2015 at 10:11:56PM +0530, Chandra S Gorentla wrote:
> Moved the opening brace of code blocks to the previous lines.  This
> fixes the checkpatch.pl error - "that open brace { should be on the
> previous line".
> 
> Signed-off-by: Chandra S Gorentla 
> ---
>  drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 9 +++--
>  1 file changed, 3 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c 
> b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
> index c2ef46f..779ec5a 100644
> --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
> +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
> @@ -1205,8 +1205,7 @@ static int WILC_WFI_add_key(struct wiphy *wiphy, struct 
> net_device *netdev, u8 k
>  
>  
>  
> - if (!pairwise)
> - {
> + if (!pairwise) {
>   if (params->cipher == WLAN_CIPHER_SUITE_TKIP)
>   u8gmode = ENCRYPT_ENABLED | WPA | TKIP;
>   else
> @@ -1304,8 +1303,7 @@ static int WILC_WFI_add_key(struct wiphy *wiphy, struct 
> net_device *netdev, u8 k
>  
>   {
>   u8mode = 0;
> - if (!pairwise)
> - {
> + if (!pairwise) {
>   if (params->key_len > 16 && params->cipher == 
> WLAN_CIPHER_SUITE_TKIP) {
>   /* swap the tx mic by rx mic */
>   pu8RxMic = params->key + 24;
> @@ -1531,8 +1529,7 @@ static int WILC_WFI_get_key(struct wiphy *wiphy, struct 
> net_device *netdev, u8 k
>   priv = wiphy_priv(wiphy);
>  
>  
> - if (!pairwise)
> - {
> + if (!pairwise) {
>   PRINT_D(CFG80211_DBG, "Getting group key idx: %x\n", key_index);
>  
>   key_params.key = priv->wilc_gtk[key_index]->key;
> -- 
> 2.5.0
> 

Hello Greg, 
 
I sent 3 patches in this series.  The subject lines of other 2 are -
 
[PATCH v3 3/3] drivers: staging: wilc1000: remove space after '('
[PATCH v3 1/3] drivers: staging: wilc1000: use 'void' for no arguments
functions

These two patches (1/3 and 3/3) were accepted but not the patch (2/3) in this 
mail.  Any reason for not accepting?  Is any thing wrong with this patch - 2/3?
If so, I can correct and send again.

Thanks,
chandra

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v3 2/3] drivers: staging: wilc1000: move { to previous line

2015-08-06 Thread Greg KH
On Thu, Aug 06, 2015 at 09:29:44PM +0530, Chandra Gorentla wrote:
> On Wed, Aug 05, 2015 at 10:11:56PM +0530, Chandra S Gorentla wrote:
> > Moved the opening brace of code blocks to the previous lines.  This
> > fixes the checkpatch.pl error - "that open brace { should be on the
> > previous line".
> > 
> > Signed-off-by: Chandra S Gorentla 
> > ---
> >  drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 9 +++--
> >  1 file changed, 3 insertions(+), 6 deletions(-)
> > 
> > diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c 
> > b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
> > index c2ef46f..779ec5a 100644
> > --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
> > +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
> > @@ -1205,8 +1205,7 @@ static int WILC_WFI_add_key(struct wiphy *wiphy, 
> > struct net_device *netdev, u8 k
> >  
> >  
> >  
> > -   if (!pairwise)
> > -   {
> > +   if (!pairwise) {
> > if (params->cipher == WLAN_CIPHER_SUITE_TKIP)
> > u8gmode = ENCRYPT_ENABLED | WPA | TKIP;
> > else
> > @@ -1304,8 +1303,7 @@ static int WILC_WFI_add_key(struct wiphy *wiphy, 
> > struct net_device *netdev, u8 k
> >  
> > {
> > u8mode = 0;
> > -   if (!pairwise)
> > -   {
> > +   if (!pairwise) {
> > if (params->key_len > 16 && params->cipher == 
> > WLAN_CIPHER_SUITE_TKIP) {
> > /* swap the tx mic by rx mic */
> > pu8RxMic = params->key + 24;
> > @@ -1531,8 +1529,7 @@ static int WILC_WFI_get_key(struct wiphy *wiphy, 
> > struct net_device *netdev, u8 k
> > priv = wiphy_priv(wiphy);
> >  
> >  
> > -   if (!pairwise)
> > -   {
> > +   if (!pairwise) {
> > PRINT_D(CFG80211_DBG, "Getting group key idx: %x\n", key_index);
> >  
> > key_params.key = priv->wilc_gtk[key_index]->key;
> > -- 
> > 2.5.0
> > 
> 
> Hello Greg, 
>  
> I sent 3 patches in this series.  The subject lines of other 2 are -
>  
> [PATCH v3 3/3] drivers: staging: wilc1000: remove space after '('
> [PATCH v3 1/3] drivers: staging: wilc1000: use 'void' for no arguments
> functions
> 
> These two patches (1/3 and 3/3) were accepted but not the patch (2/3) in this 
> mail.  Any reason for not accepting?  Is any thing wrong with this patch - 
> 2/3?
> If so, I can correct and send again.

Rebase your series on the tree and see what happens to your 2/3 patch :)

(hint, someone else sent the same patch before you did, so it is not
needed anymore...)

thanks,

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCHv6 2/5] Staging: most: mostcore/core.c. Fix "Using plain integer as NULL pointer" warnings

2015-08-06 Thread Adrian Remonda
This patch fixes the warning generated by sparse: "Using plain integer
as NULL pointer" by replacing the offending 0 with NULL.

v6: styling. Change the NULL test to comply with the Kernel coding style

Signed-off-by: Adrian Remonda 
---
 drivers/staging/most/mostcore/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/most/mostcore/core.c 
b/drivers/staging/most/mostcore/core.c
index fa9c19b65a5c..7bb16db42893 100644
--- a/drivers/staging/most/mostcore/core.c
+++ b/drivers/staging/most/mostcore/core.c
@@ -982,7 +982,7 @@ static ssize_t store_add_link(struct most_aim_obj *aim_obj,
if (ret)
return ret;
 
-   if (mdev_devnod == 0 || *mdev_devnod == 0) {
+   if (!mdev_devnod || *mdev_devnod == 0) {
snprintf(devnod_buf, sizeof(devnod_buf), "%s-%s", mdev, 
mdev_ch);
mdev_devnod = devnod_buf;
}
-- 
2.1.4

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCHv6 1/5] Staging: most: mostcore/core.c. Fix "missing static keyword" warnings

2015-08-06 Thread Adrian Remonda
This is a patch to the mostcore/core.c file. It makes
several local functions and structures static to prevent global
visibility.

v6: fixed warning "line over 80 characters" as pointed out by
Sudip Mukherjee

Signed-off-by: Adrian Remonda 
---
 drivers/staging/most/mostcore/core.c | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/most/mostcore/core.c 
b/drivers/staging/most/mostcore/core.c
index f4fea8cf5560..fa9c19b65a5c 100644
--- a/drivers/staging/most/mostcore/core.c
+++ b/drivers/staging/most/mostcore/core.c
@@ -178,7 +178,7 @@ static void most_free_mbo_coherent(struct mbo *mbo)
  * flush_channel_fifos - clear the channel fifos
  * @c: pointer to channel object
  */
-void flush_channel_fifos(struct most_c_obj *c)
+static void flush_channel_fifos(struct most_c_obj *c)
 {
unsigned long flags, hf_flags;
struct mbo *mbo, *tmp;
@@ -888,7 +888,7 @@ static ssize_t show_add_link(struct most_aim_obj *aim_obj,
  * Input: "mdev0:ch0@ep_81"
  * Output: *a -> "mdev0", *b -> "ch0@ep_81", *c == NULL
  */
-int split_string(char *buf, char **a, char **b, char **c)
+static int split_string(char *buf, char **a, char **b, char **c)
 {
*a = strsep(&buf, ":");
if (!*a)
@@ -1006,7 +1006,7 @@ static ssize_t store_add_link(struct most_aim_obj 
*aim_obj,
return len;
 }
 
-struct most_aim_attribute most_aim_attr_add_link =
+static struct most_aim_attribute most_aim_attr_add_link =
__ATTR(add_link, S_IRUGO | S_IWUSR, show_add_link, store_add_link);
 
 static ssize_t show_remove_link(struct most_aim_obj *aim_obj,
@@ -1057,7 +1057,7 @@ static ssize_t store_remove_link(struct most_aim_obj 
*aim_obj,
return len;
 }
 
-struct most_aim_attribute most_aim_attr_remove_link =
+static struct most_aim_attribute most_aim_attr_remove_link =
__ATTR(remove_link, S_IRUGO | S_IWUSR, show_remove_link, 
store_remove_link);
 
 static struct attribute *most_aim_def_attrs[] = {
@@ -1121,14 +1121,14 @@ static void destroy_most_aim_obj(struct most_aim_obj *p)
 /**
  * Instantiation of the MOST bus
  */
-struct bus_type most_bus = {
+static struct bus_type most_bus = {
.name = "most",
 };
 
 /**
  * Instantiation of the core driver
  */
-struct device_driver mostcore = {
+static struct device_driver mostcore = {
.name = "mostcore",
.bus = &most_bus,
 };
@@ -1255,7 +1255,8 @@ static void arm_mbo(struct mbo *mbo)
  *
  * Returns the number of allocated and enqueued MBOs.
  */
-int arm_mbo_chain(struct most_c_obj *c, int dir, void (*compl)(struct mbo *))
+static int arm_mbo_chain(struct most_c_obj *c, int dir,
+void (*compl)(struct mbo *))
 {
unsigned int i;
int retval;
-- 
2.1.4

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCHv6 3/5] Staging: most: hdm-usb/hdm_usb.c. Fix "missing static keyword" warnings

2015-08-06 Thread Adrian Remonda
This is a patch to the most/hdm-usb/hdm_usb.c file. It
makes several local functions and structures static to prevent global
visibility.

v6: fixed alignment with parameter list of a function.

Signed-off-by: Adrian Remonda 
---
 drivers/staging/most/hdm-usb/hdm_usb.c | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c 
b/drivers/staging/most/hdm-usb/hdm_usb.c
index 514ce3529b7a..305303f2f17c 100644
--- a/drivers/staging/most/hdm-usb/hdm_usb.c
+++ b/drivers/staging/most/hdm-usb/hdm_usb.c
@@ -290,7 +290,7 @@ static unsigned int get_stream_frame_size(struct 
most_channel_config *cfg)
  *
  * Returns 0 on success or error code otherwise.
  */
-int hdm_poison_channel(struct most_interface *iface, int channel)
+static int hdm_poison_channel(struct most_interface *iface, int channel)
 {
struct most_dev *mdev;
 
@@ -328,7 +328,7 @@ int hdm_poison_channel(struct most_interface *iface, int 
channel)
  * This inserts the INIC hardware specific padding bytes into a streaming
  * channel's buffer
  */
-int hdm_add_padding(struct most_dev *mdev, int channel, struct mbo *mbo)
+static int hdm_add_padding(struct most_dev *mdev, int channel, struct mbo *mbo)
 {
struct most_channel_config *conf = &mdev->conf[channel];
unsigned int j, num_frames, frame_size;
@@ -365,7 +365,7 @@ int hdm_add_padding(struct most_dev *mdev, int channel, 
struct mbo *mbo)
  * This takes the INIC hardware specific padding bytes off a streaming
  * channel's buffer.
  */
-int hdm_remove_padding(struct most_dev *mdev, int channel, struct mbo *mbo)
+static int hdm_remove_padding(struct most_dev *mdev, int channel, struct mbo 
*mbo)
 {
unsigned int j, num_frames, frame_size;
struct most_channel_config *const conf = &mdev->conf[channel];
@@ -644,7 +644,7 @@ static void hdm_read_completion(struct urb *urb)
  *
  * Context: Could in _some_ cases be interrupt!
  */
-int hdm_enqueue(struct most_interface *iface, int channel, struct mbo *mbo)
+static int hdm_enqueue(struct most_interface *iface, int channel, struct mbo 
*mbo)
 {
struct most_dev *mdev;
struct buf_anchor *anchor;
@@ -743,8 +743,8 @@ _error:
  * @channel: channel ID
  * @conf: structure that holds the configuration information
  */
-int hdm_configure_channel(struct most_interface *iface, int channel,
- struct most_channel_config *conf)
+static int hdm_configure_channel(struct most_interface *iface, int channel,
+struct most_channel_config *conf)
 {
unsigned int num_frames;
unsigned int frame_size;
@@ -824,7 +824,7 @@ exit:
  * This triggers the USB vendor requests to read the hardware address and
  * the current link status of the attached device.
  */
-int hdm_update_netinfo(struct most_dev *mdev)
+static int hdm_update_netinfo(struct most_dev *mdev)
 {
struct device *dev = &mdev->usb_device->dev;
int i;
@@ -873,7 +873,7 @@ int hdm_update_netinfo(struct most_dev *mdev)
  * polls for the NI state of the INIC every 2 seconds.
  *
  */
-void hdm_request_netinfo(struct most_interface *iface, int channel)
+static void hdm_request_netinfo(struct most_interface *iface, int channel)
 {
struct most_dev *mdev;
 
-- 
2.1.4

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCHv6 0/5] Staging: most: several warnings fix reported by sparse

2015-08-06 Thread Adrian Remonda
This patch series fix several warnings reported by the Sparse tool

   v2: Fixed patch format and comments as noted by 
Greg Kroah-Hartman and clear a few more warnings
   v3: Fixed patch format as noted by Greg Kroah-Hartman
   v4: Fixed patch format as noted by Greg Kroah-Hartman
   v5: Because of using a non-updated tree previously two 
   patches did not apply
   v6: Clear warnings and styling issues

Adrian Remonda (5):
  Staging: most: mostcore/core.c. Fix "missing static keyword" warnings
  Staging: most: mostcore/core.c. Fix "Using plain integer as NULL
pointer" warnings
  Staging: most: hdm-usb/hdm_usb.c. Fix "missing static keyword"
warnings
  Staging: most: hdm-dim2/dim2_hal.c. Fix "Using plain integer as NULL
pointer" warnings
  Staging: most: aim-cdev/cdev.c. Fix "missing static keyword" warnings

 drivers/staging/most/aim-cdev/cdev.c | 18 +-
 drivers/staging/most/hdm-dim2/dim2_hal.c |  2 +-
 drivers/staging/most/hdm-usb/hdm_usb.c   | 16 
 drivers/staging/most/mostcore/core.c | 17 +
 4 files changed, 27 insertions(+), 26 deletions(-)

-- 
2.1.4

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCHv6 4/5] Staging: most: hdm-dim2/dim2_hal.c. Fix "Using plain integer as NULL pointer" warnings

2015-08-06 Thread Adrian Remonda
This patch fixes the warning generated by sparse: "Using plain integer
as NULL pointer" by replacing the offending 0 with NULL.

Signed-off-by: Adrian Remonda 
---
 drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c 
b/drivers/staging/most/hdm-dim2/dim2_hal.c
index 01b748944ee4..a54cf2cedac3 100644
--- a/drivers/staging/most/hdm-dim2/dim2_hal.c
+++ b/drivers/staging/most/hdm-dim2/dim2_hal.c
@@ -889,7 +889,7 @@ struct dim_ch_state_t *DIM_GetChannelState(struct 
dim_channel *ch,
struct dim_ch_state_t *state_ptr)
 {
if (!ch || !state_ptr)
-   return 0;
+   return NULL;
 
state_ptr->ready = ch->state.level < 2;
state_ptr->done_buffers = ch->done_sw_buffers_number;
-- 
2.1.4

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCHv6 5/5] Staging: most: aim-cdev/cdev.c. Fix "missing static keyword" warnings

2015-08-06 Thread Adrian Remonda
This is a patch to the most/aim_cdev.c file. It makes several
local functions and structures static to prevent global visibility.

Signed-off-by: Adrian Remonda 
---
 drivers/staging/most/aim-cdev/cdev.c | 18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/most/aim-cdev/cdev.c 
b/drivers/staging/most/aim-cdev/cdev.c
index 252a17cf153c..0a13d8d0fa39 100644
--- a/drivers/staging/most/aim-cdev/cdev.c
+++ b/drivers/staging/most/aim-cdev/cdev.c
@@ -49,7 +49,7 @@ static struct list_head channel_list;
 static spinlock_t ch_list_lock;
 
 
-struct aim_channel *get_channel(struct most_interface *iface, int id)
+static struct aim_channel *get_channel(struct most_interface *iface, int id)
 {
struct aim_channel *channel, *tmp;
unsigned long flags;
@@ -289,7 +289,7 @@ static const struct file_operations channel_fops = {
  * This frees allocated memory and removes the cdev that represents this
  * channel in user space.
  */
-int aim_disconnect_channel(struct most_interface *iface, int channel_id)
+static int aim_disconnect_channel(struct most_interface *iface, int channel_id)
 {
struct aim_channel *channel;
unsigned long flags;
@@ -329,7 +329,7 @@ int aim_disconnect_channel(struct most_interface *iface, 
int channel_id)
  * This searches for the channel linked to this MBO and stores it in the local
  * fifo buffer.
  */
-int aim_rx_completion(struct mbo *mbo)
+static int aim_rx_completion(struct mbo *mbo)
 {
struct aim_channel *channel;
 
@@ -356,7 +356,7 @@ int aim_rx_completion(struct mbo *mbo)
  *
  * This wakes sleeping processes in the wait-queue.
  */
-int aim_tx_completion(struct most_interface *iface, int channel_id)
+static int aim_tx_completion(struct most_interface *iface, int channel_id)
 {
struct aim_channel *channel;
 
@@ -376,7 +376,7 @@ int aim_tx_completion(struct most_interface *iface, int 
channel_id)
return 0;
 }
 
-struct most_aim cdev_aim;
+static struct most_aim cdev_aim;
 
 /**
  * aim_probe - probe function of the driver module
@@ -390,9 +390,9 @@ struct most_aim cdev_aim;
  *
  * Returns 0 on success or error code otherwise.
  */
-int aim_probe(struct most_interface *iface, int channel_id,
- struct most_channel_config *cfg,
- struct kobject *parent, char *name)
+static int aim_probe(struct most_interface *iface, int channel_id,
+struct most_channel_config *cfg,
+struct kobject *parent, char *name)
 {
struct aim_channel *channel;
unsigned long cl_flags;
@@ -463,7 +463,7 @@ error_alloc_channel:
return retval;
 }
 
-struct most_aim cdev_aim = {
+static struct most_aim cdev_aim = {
.name = "cdev",
.probe_channel = aim_probe,
.disconnect_channel = aim_disconnect_channel,
-- 
2.1.4

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCHv6 1/5] Staging: most: mostcore/core.c. Fix "missing static keyword" warnings

2015-08-06 Thread Greg KH
On Thu, Aug 06, 2015 at 07:34:56PM +0200, Adrian Remonda wrote:
> This is a patch to the mostcore/core.c file. It makes
> several local functions and structures static to prevent global
> visibility.
> 
> v6: fixed warning "line over 80 characters" as pointed out by
> Sudip Mukherjee

The vX line doesn't belong here, it should be below the --- line so that
it is not added to the commit itself.

Please fix up all of these, and resend, I can't take them as-is.

thanks,

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


RE: [PATCH V4 7/7] Drivers: hv: vmbus: disable local interrupt when hvsock's callback is running

2015-08-06 Thread KY Srinivasan


> -Original Message-
> From: Dexuan Cui
> Sent: Wednesday, August 5, 2015 9:44 PM
> To: David Miller ; KY Srinivasan
> 
> Cc: o...@aepfle.de; gre...@linuxfoundation.org; jasow...@redhat.com;
> driverdev-devel@linuxdriverproject.org; linux-ker...@vger.kernel.org;
> step...@networkplumber.org; stefa...@redhat.com;
> net...@vger.kernel.org; a...@canonical.com; pebo...@tiscali.nl;
> dan.carpen...@oracle.com
> Subject: RE: [PATCH V4 7/7] Drivers: hv: vmbus: disable local interrupt when
> hvsock's callback is running
> 
> > -Original Message-
> > From: devel [mailto:driverdev-devel-boun...@linuxdriverproject.org] On
> Behalf
> > Of Dexuan Cui
> > Sent: Thursday, July 30, 2015 18:18
> > To: David Miller ; KY Srinivasan
> 
> > Cc: o...@aepfle.de; gre...@linuxfoundation.org; jasow...@redhat.com;
> > driverdev-devel@linuxdriverproject.org; linux-ker...@vger.kernel.org;
> > step...@networkplumber.org; stefa...@redhat.com;
> net...@vger.kernel.org;
> > a...@canonical.com; pebo...@tiscali.nl; dan.carpen...@oracle.com
> > Subject: RE: [PATCH V4 7/7] Drivers: hv: vmbus: disable local interrupt
> when
> > hvsock's callback is running
> >
> > > From: David Miller
> > > Sent: Thursday, July 30, 2015 6:28
> > > > From: Dexuan Cui 
> > > > Date: Tue, 28 Jul 2015 05:35:30 -0700
> > > >
> > > > In the SMP guest case, when the per-channel callback hvsock_events()
> is
> > > > running on virtual CPU A, if the guest tries to close the connection on
> > > > virtual CPU B: we invoke vmbus_close() -> vmbus_close_internal(),
> > > > then we can have trouble: on B, vmbus_close_internal() will send IPI
> > > > reset_channel_cb() to A, trying to set channel->onchannel_callbackto
> NULL;
> > > > on A, if the IPI handler happens between
> > > > "if (channel->onchannel_callback != NULL)" and invoking
> > > > channel->onchannel_callback, we'll invoke a function pointer of NULL.
> > > >
> > > > This is why the patch is necessary.
> > > >
> > > Sorry, I do not accept that you must use conditional locking and/or
> > > IRQ disabling.
> > >
> > > Boil it down to what is necessary for the least common denominator,
> > > and use that unconditionally.
> >
> > Hi David,
> > Thanks for the comment!
> >
> > I agree with you it's not clean to use conditional IRQ disabling.
> >
> > Here I didn't use unconditionally IRQ disabling because the Hyper-V netvsc
> > and storvsc driver's vmbus event callbacks (i.e. netvsc_channel_cb() and
> > storvsc_on_channel_callback()) may take relatively long time (e.g., netvsc
> can
> > operate at a speed of 10Gb) and I think it's bad to disable IRQ for long 
> > time
> > when the callbacks are running in a tasklet context, e.g., the Hyper-V timer
> > can be affected: see vmbus_isr() -> hv_process_timer_expiration().
> >
> > To resolve the race condition between vmbus_close_internal() and
> > process_chn_event() in SMP case, now I propose a new method:
> >
> > we can serialize the 2 paths by adding
> > tasklet_disable(hv_context.event_dpc[channel->target_cpu]) and
> > tasklet_enable(...) in vmbus_close_internal().
> >
> > In this way, we need the least change and we can drop this patch.
> >
> > Please let me know your opinion.
> >
> > -- Dexuan
> 
> Hi David, KY and all,
> 
> May I know your opinion about my idea of adding tasklet_disable/enbable()
> in vmbus_close_internal() and dropping this patch?

Sorry for the delayed response; I think this is a reasonable solution. Send me 
the patch.

Regards,

K. Y
> 
> Thanks,
> -- Dexuan

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


RE: [PATCH V4 4/7] Drivers: hv: vmbus: add APIs to register callbacks to process hvsock connection

2015-08-06 Thread KY Srinivasan


> -Original Message-
> From: Dexuan Cui
> Sent: Wednesday, August 5, 2015 9:54 PM
> To: David Miller ; KY Srinivasan
> 
> Cc: o...@aepfle.de; gre...@linuxfoundation.org; jasow...@redhat.com;
> driverdev-devel@linuxdriverproject.org; linux-ker...@vger.kernel.org;
> step...@networkplumber.org; stefa...@redhat.com;
> net...@vger.kernel.org; a...@canonical.com; pebo...@tiscali.nl;
> dan.carpen...@oracle.com
> Subject: RE: [PATCH V4 4/7] Drivers: hv: vmbus: add APIs to register callbacks
> to process hvsock connection
> 
> > From: devel [mailto:driverdev-devel-boun...@linuxdriverproject.org] On
> Behalf
> > Of Dexuan Cui
> > Sent: Thursday, July 30, 2015 18:20
> > To: David Miller ; KY Srinivasan
> 
> > Cc: o...@aepfle.de; gre...@linuxfoundation.org; jasow...@redhat.com;
> > driverdev-devel@linuxdriverproject.org; linux-ker...@vger.kernel.org;
> > step...@networkplumber.org; stefa...@redhat.com;
> net...@vger.kernel.org;
> > a...@canonical.com; pebo...@tiscali.nl; dan.carpen...@oracle.com
> > Subject: RE: [PATCH V4 4/7] Drivers: hv: vmbus: add APIs to register
> callbacks to
> > process hvsock connection
> >
> > > From: David Miller
> > > Sent: Thursday, July 30, 2015 6:27
> > >
> > > From: Dexuan Cui
> > > Date: Tue, 28 Jul 2015 05:35:11 -0700
> > >
> > > > With the 2 APIs supplied by the VMBus driver, the coming net/hvsock
> driver
> > > > can register 2 callbacks and can know when a new hvsock connection is
> > > > offered by the host, and when a hvsock connection is being closed by
> the
> > > > host.
> > > >
> > > This is an extremely terrible interface.
> > >
> > > It's an opaque hook that allows on registry, and it's solve purpose
> > > is to allow a backdoor call into a foreign driver in another module.
> > >
> > > These are exactly the things we try to avoid.
> >
> > Hi David,
> > Thanks a lot for your reviewing and the suggestion!
> >
> > > Why not create a real abstraction where clients register an object,
> > > that can be contained as a sub-member inside of their own driver
> > > private, that provides the callback registry mechanism.
> 
> Hi David,
> Can you please have a look at my below questions?
> 
> I like your idea of a real abstraction. Your answer would definitely
> help me to implement that correctly.
> 
> > Please pardon me for my inexperience.
> > Can you please be a bit more specific?
> > I guess maybe you're referencing a common design pattern in the driver
> > code, so an example in some existing driver would be the best. :-)
> >
> > "clients register an object " --
> > does the "clients" mean the hvsock driver?
> > and the "object" means the 2 callbacks?
> >
> > IMHO, here the vmbus driver has to synchronously pass the 2 events
> > to the hvsock driver, so a "backdoor call into the hvsock driver" is
> > inevitable anyway?
> >
> > e.g., in the path vmbus_process_offer() -> hvsock_process_offer(), the
> > return value of the latter is important to the former, because on error
> > the former needs to clean up some internal states of the vmbus driver
> (that
> > is, the "goto err_deq_chan").
> >
> >
> > > That way you can register multiple clients, do things like allow
> > > AF_PACKET capturing of vmbus traffic, etc.
> >
> > I thought AF_PACKET can only capture IP packetsor Ethernet frames.
> > Can it be used to capture AF_UNIX packet?
> > If yes, I suppose we can consider making it work for AF_HYPERV too,
> > if people ask for that.
> >

Dexuan,

The notion of a channel on Hyper-V has been mapped to a device on Linux and the 
mechanism we have
had of notifying the driver of the creation of the channel was through 
registering this device with the kernel
(vmbus_device_create). The first exception to this was when we introduced 
multi-channel support that broke
the assumption of this one to one mapping between the channel and Linux device. 
In the case of the sub-channels,
we handled the  driver notification issue via the sub-channel callback that the 
driver registers at the point of 
opening the channel. Perhaps we could make the sub-channel handling mechanism 
more generic to handle the case
of VMSOCK as well?

Regards,

K. Y
> > -- Dexuan
> 
> Thanks,
> -- Dexuan

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/3] mei, make modules.alias UUID information easier to read

2015-08-06 Thread Prarit Bhargava
scripts/mod/file2alias.c:add_uuid() munges a UUID into a single string
which does not conform to the standard little endian UUID.  This patch
changes add_uuid() to use the UUID correctly so that future drivers which
use UUID matches can simply use the %pUL format, and modifies the mei
driver with those changes.

Signed-off-by: Prarit Bhargava 
---
 drivers/misc/mei/bus.c  |6 ++
 include/linux/mod_devicetable.h |4 
 scripts/mod/file2alias.c|9 ++---
 3 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c
index 458aa5a..457e132 100644
--- a/drivers/misc/mei/bus.c
+++ b/drivers/misc/mei/bus.c
@@ -141,8 +141,7 @@ static ssize_t modalias_show(struct device *dev, struct 
device_attribute *a,
const uuid_le *uuid = mei_me_cl_uuid(device->me_cl);
size_t len;
 
-   len = snprintf(buf, PAGE_SIZE, "mei:%s:" MEI_CL_UUID_FMT ":",
-   device->name, MEI_CL_UUID_ARGS(uuid->b));
+   len = snprintf(buf, PAGE_SIZE, "mei:%s:%pUl:", device->name, uuid);
 
return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len;
 }
@@ -167,8 +166,7 @@ static int mei_cl_uevent(struct device *dev, struct 
kobj_uevent_env *env)
if (add_uevent_var(env, "MEI_CL_NAME=%s", device->name))
return -ENOMEM;
 
-   if (add_uevent_var(env, "MODALIAS=mei:%s:" MEI_CL_UUID_FMT ":",
-   device->name, MEI_CL_UUID_ARGS(uuid->b)))
+   if (add_uevent_var(env, "MODALIAS=mei:%s:%pUl:", device->name, uuid))
return -ENOMEM;
 
return 0;
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index 34f25b7..becda6f 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -601,10 +601,6 @@ struct ipack_device_id {
 
 #define MEI_CL_MODULE_PREFIX "mei:"
 #define MEI_CL_NAME_SIZE 32
-#define MEI_CL_UUID_FMT 
"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x"
-#define MEI_CL_UUID_ARGS(_u) \
-   _u[0], _u[1], _u[2], _u[3], _u[4], _u[5], _u[6], _u[7], \
-   _u[8], _u[9], _u[10], _u[11], _u[12], _u[13], _u[14], _u[15]
 
 /**
  * struct mei_cl_device_id - MEI client device identifier
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index 5f20882..8a46c60 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -137,10 +137,13 @@ static inline void add_wildcard(char *str)
 static inline void add_uuid(char *str, uuid_le uuid)
 {
int len = strlen(str);
-   int i;
 
-   for (i = 0; i < 16; i++)
-   sprintf(str + len + (i << 1), "%02x", uuid.b[i]);
+   sprintf(str + len,
+   
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+   uuid.b[3], uuid.b[2], uuid.b[1], uuid.b[0],
+   uuid.b[5], uuid.b[4], uuid.b[7], uuid.b[6],
+   uuid.b[8], uuid.b[9], uuid.b[10], uuid.b[11],
+   uuid.b[12], uuid.b[13], uuid.b[14], uuid.b[15]);
 }
 
 /**
-- 
1.7.9.3

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 0/3] Unisys visorbus driver autoloading patches

2015-08-06 Thread Prarit Bhargava


On 08/06/2015 02:28 PM, Prarit Bhargava wrote:
> Greg,
> 
> These are patches that correctly implement driver autoloading for the
> visorbus drivers.  These patches do touch code outside of drivers/staging,
> however, since they are dependent on code in the drivers/staging area I
> think the correct path is to push these through drivers/staging. (This is
> an unfortunate chicken-and-egg problem with drivers/staging)
> 
> If this is incorrect, please let me know what you think the best mailing
> list would be.
> 

Greg, ignore this.  I just saw Dan's response to my earlier suggestion of a one
line MODULE_ALIAS() with a warning approach to this fix.  Self-NACK on this, and
I'll post an updated simple patch tomorrow AM.

My apologies for the noise, and thanks Dan.

P.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


RE: randconfig build error with next-20150806, in arch/x86/kernel/cpu/mshyperv.c

2015-08-06 Thread KY Srinivasan


> -Original Message-
> From: Jim Davis [mailto:jim.ep...@gmail.com]
> Sent: Thursday, August 6, 2015 7:55 AM
> To: Stephen Rothwell ; linux-next  n...@vger.kernel.org>; linux-kernel ; KY
> Srinivasan ; Haiyang Zhang
> ; tglx ; Ingo Molnar
> ; hpa ; x86 ;
> de...@linuxdriverproject.org
> Subject: randconfig build error with next-20150806, in
> arch/x86/kernel/cpu/mshyperv.c
> 
> Building with the attached random configuration file,
> 
> warning: (INTEL_MIC_HOST && CAIF_VIRTIO && VHOST_NET &&
> VHOST_SCSI &&
> VHOST_NET && VHOST_SCSI) selects VHOST_RING which has unmet direct
> dependencies (NETDEVICES && CAIF_VIRTIO || VIRTUALIZATION)
> 
> arch/x86/built-in.o: In function `hv_machine_crash_shutdown':
> /home/jim/linux-next/arch/x86/kernel/cpu/mshyperv.c:112: undefined
> reference to `native_machine_crash_shutdown'

Thanks Jim; I am sending out a patch to address the issue in mshyperv.c.

Regards,


K. Y


> 
> --
> Jim
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/1] X86: mshyperv.c: Fix a compilation issue.

2015-08-06 Thread K. Y. Srinivasan
Building with a random configuration file, this build failure
was reported:

arch/x86/built-in.o: In function `hv_machine_crash_shutdown':
arch/x86/kernel/cpu/mshyperv.c:112: undefined
reference to `native_machine_crash_shutdown'

This patch fixes the problem

Reported-by: Jim Davis 
Signed-off-by: K. Y. Srinivasan 
---
 arch/x86/kernel/cpu/mshyperv.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index f794bfa..0faed5e0 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -109,7 +109,9 @@ static void hv_machine_crash_shutdown(struct pt_regs *regs)
 {
if (hv_crash_handler)
hv_crash_handler(regs);
+#ifdef CONFIG_KEXEC_CORE
native_machine_crash_shutdown(regs);
+#endif
 }
 
 
-- 
1.7.4.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 1/1] X86: mshyperv.c: Fix a compilation issue.

2015-08-06 Thread Greg KH
On Thu, Aug 06, 2015 at 02:41:24PM -0700, K. Y. Srinivasan wrote:
> Building with a random configuration file, this build failure
> was reported:
> 
> arch/x86/built-in.o: In function `hv_machine_crash_shutdown':
> arch/x86/kernel/cpu/mshyperv.c:112: undefined
> reference to `native_machine_crash_shutdown'
> 
> This patch fixes the problem
> 
> Reported-by: Jim Davis 
> Signed-off-by: K. Y. Srinivasan 
> ---
>  arch/x86/kernel/cpu/mshyperv.c |2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
> index f794bfa..0faed5e0 100644
> --- a/arch/x86/kernel/cpu/mshyperv.c
> +++ b/arch/x86/kernel/cpu/mshyperv.c
> @@ -109,7 +109,9 @@ static void hv_machine_crash_shutdown(struct pt_regs 
> *regs)
>  {
>   if (hv_crash_handler)
>   hv_crash_handler(regs);
> +#ifdef CONFIG_KEXEC_CORE
>   native_machine_crash_shutdown(regs);
> +#endif

Why is kexec the factor here?  And if it really does, can't it just be
CONFIG_KEXEC, or, can kexec provide a "dummy" inline function so that
you don't have to have a #ifdef in a .c file?

thanks,

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCHv6 3/5] Staging: most: hdm-usb/hdm_usb.c. Fix "missing static keyword" warnings

2015-08-06 Thread Christian Gromm
On Thu, 6 Aug 2015 19:34:58 +0200
Adrian Remonda  wrote:

> This is a patch to the most/hdm-usb/hdm_usb.c file. It
> makes several local functions and structures static to prevent global
> visibility.
> 
> v6: fixed alignment with parameter list of a function.
> 
> Signed-off-by: Adrian Remonda 
> ---
>  drivers/staging/most/hdm-usb/hdm_usb.c | 16 
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c 
> b/drivers/staging/most/hdm-usb/hdm_usb.c
> index 514ce3529b7a..305303f2f17c 100644
> --- a/drivers/staging/most/hdm-usb/hdm_usb.c
> +++ b/drivers/staging/most/hdm-usb/hdm_usb.c
> @@ -290,7 +290,7 @@ static unsigned int get_stream_frame_size(struct 
> most_channel_config *cfg)
>   *
>   * Returns 0 on success or error code otherwise.
>   */
> -int hdm_poison_channel(struct most_interface *iface, int channel)
> +static int hdm_poison_channel(struct most_interface *iface, int channel)
>  {
>   struct most_dev *mdev;
>  
> @@ -328,7 +328,7 @@ int hdm_poison_channel(struct most_interface *iface, int 
> channel)
>   * This inserts the INIC hardware specific padding bytes into a streaming
>   * channel's buffer
>   */
> -int hdm_add_padding(struct most_dev *mdev, int channel, struct mbo *mbo)
> +static int hdm_add_padding(struct most_dev *mdev, int channel, struct mbo 
> *mbo)
>  {
>   struct most_channel_config *conf = &mdev->conf[channel];
>   unsigned int j, num_frames, frame_size;
> @@ -365,7 +365,7 @@ int hdm_add_padding(struct most_dev *mdev, int channel, 
> struct mbo *mbo)
>   * This takes the INIC hardware specific padding bytes off a streaming
>   * channel's buffer.
>   */
> -int hdm_remove_padding(struct most_dev *mdev, int channel, struct mbo *mbo)
> +static int hdm_remove_padding(struct most_dev *mdev, int channel, struct mbo 
> *mbo)
>  {
>   unsigned int j, num_frames, frame_size;
>   struct most_channel_config *const conf = &mdev->conf[channel];
> @@ -644,7 +644,7 @@ static void hdm_read_completion(struct urb *urb)
>   *
>   * Context: Could in _some_ cases be interrupt!
>   */
> -int hdm_enqueue(struct most_interface *iface, int channel, struct mbo *mbo)
> +static int hdm_enqueue(struct most_interface *iface, int channel, struct mbo 
> *mbo)
>  {
>   struct most_dev *mdev;
>   struct buf_anchor *anchor;
> @@ -743,8 +743,8 @@ _error:
>   * @channel: channel ID
>   * @conf: structure that holds the configuration information
>   */
> -int hdm_configure_channel(struct most_interface *iface, int channel,
> -   struct most_channel_config *conf)
> +static int hdm_configure_channel(struct most_interface *iface, int channel,
> +  struct most_channel_config *conf)

Again, please keep the original alignment and start the second line
of function arguments right beneath the first argument or else this
function will be different from others.

Thanks,
Chris

>  {
>   unsigned int num_frames;
>   unsigned int frame_size;
> @@ -824,7 +824,7 @@ exit:
>   * This triggers the USB vendor requests to read the hardware address and
>   * the current link status of the attached device.
>   */
> -int hdm_update_netinfo(struct most_dev *mdev)
> +static int hdm_update_netinfo(struct most_dev *mdev)
>  {
>   struct device *dev = &mdev->usb_device->dev;
>   int i;
> @@ -873,7 +873,7 @@ int hdm_update_netinfo(struct most_dev *mdev)
>   * polls for the NI state of the INIC every 2 seconds.
>   *
>   */
> -void hdm_request_netinfo(struct most_interface *iface, int channel)
> +static void hdm_request_netinfo(struct most_interface *iface, int channel)
>  {
>   struct most_dev *mdev;
>  

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/3] drivers/staging: visorbus, add module autoload functionality

2015-08-06 Thread Prarit Bhargava
This patch adds module autoload functionality to the visorbus bus drivers
(currently only visornic is in tree).  This patch adds visorbus alias
creation entries to modpost, and moves the appropriate structure define
into include/linux/mod_devicetable.h.

Signed-off-by: Prarit Bhargava 
---
 drivers/staging/unisys/include/visorbus.h   |8 
 drivers/staging/unisys/visorbus/visorbus_main.c |1 +
 include/linux/mod_devicetable.h |   11 +++
 scripts/mod/devicetable-offsets.c   |4 
 scripts/mod/file2alias.c|   11 +++
 5 files changed, 27 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/unisys/include/visorbus.h 
b/drivers/staging/unisys/include/visorbus.h
index e4a21e4..758ca94 100644
--- a/drivers/staging/unisys/include/visorbus.h
+++ b/drivers/staging/unisys/include/visorbus.h
@@ -53,14 +53,6 @@ struct visorchipset_state {
/* Remaining bits in this 32-bit word are unused. */
 };
 
-/** This struct describes a specific Supervisor channel, by providing its
- *  GUID, name, and sizes.
- */
-struct visor_channeltype_descriptor {
-   const uuid_le guid;
-   const char *name;
-};
-
 /** Information provided by each visor driver when it registers with the
  *  visorbus driver.
  */
diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c 
b/drivers/staging/unisys/visorbus/visorbus_main.c
index 6db4719..df411ee 100644
--- a/drivers/staging/unisys/visorbus/visorbus_main.c
+++ b/drivers/staging/unisys/visorbus/visorbus_main.c
@@ -16,6 +16,7 @@
  */
 
 #include 
+#include 
 
 #include "visorbus.h"
 #include "visorbus_private.h"
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index becda6f..b849f19 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -646,4 +646,15 @@ struct ulpi_device_id {
kernel_ulong_t driver_data;
 };
 
+/**
+ * struct visor_channeltype_descriptor - VISORBUS Channel Type Descriptor
+ * @guid: UUID for the channel
+ * @name: name of the channel
+ *
+ * describes a specific Supervisor channel, by providing its * GUID and name.
+ */
+struct visor_channeltype_descriptor {
+   uuid_le guid;
+   char *name;
+};
 #endif /* LINUX_MOD_DEVICETABLE_H */
diff --git a/scripts/mod/devicetable-offsets.c 
b/scripts/mod/devicetable-offsets.c
index e70fcd1..4b8797b 100644
--- a/scripts/mod/devicetable-offsets.c
+++ b/scripts/mod/devicetable-offsets.c
@@ -196,5 +196,9 @@ int main(void)
DEVID_FIELD(ulpi_device_id, vendor);
DEVID_FIELD(ulpi_device_id, product);
 
+   DEVID(visor_channeltype_descriptor);
+   DEVID_FIELD(visor_channeltype_descriptor, guid);
+   DEVID_FIELD(visor_channeltype_descriptor, name);
+
return 0;
 }
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index 8a46c60..f3d011f 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -1253,6 +1253,17 @@ static int do_ulpi_entry(const char *filename, void 
*symval,
 }
 ADD_TO_DEVTABLE("ulpi", ulpi_device_id, do_ulpi_entry);
 
+static int do_visorbus_entry(const char *filename, void *symval, char *alias)
+{
+   DEF_FIELD_ADDR(symval, visor_channeltype_descriptor, guid);
+
+   sprintf(alias, "visorbus:");
+   add_uuid(alias, *guid);
+
+   return 1;
+}
+ADD_TO_DEVTABLE("visorbus", visor_channeltype_descriptor, do_visorbus_entry);
+
 /* Does namelen bytes of name exactly match the symbol? */
 static bool sym_is(const char *name, unsigned namelen, const char *symbol)
 {
-- 
1.7.9.3

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 3/3] drivers, staging, unisys Add visornic module autoloading code

2015-08-06 Thread Prarit Bhargava
This patch adds an module alias and a MODULE_DEVICE_TABLE to autoload the
visornic driver when an appropriate device is created by the visorbus.

Signed-off-by: Prarit Bhargava 
---
 drivers/staging/unisys/visornic/visornic_main.c |1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/staging/unisys/visornic/visornic_main.c 
b/drivers/staging/unisys/visornic/visornic_main.c
index 7100744..9d31383 100644
--- a/drivers/staging/unisys/visornic/visornic_main.c
+++ b/drivers/staging/unisys/visornic/visornic_main.c
@@ -72,6 +72,7 @@ static struct visor_channeltype_descriptor 
visornic_channel_types[] = {
{ SPAR_VNIC_CHANNEL_PROTOCOL_UUID, "ultravnic" },
{ NULL_UUID_LE, NULL }
 };
+MODULE_DEVICE_TABLE(visorbus, visornic_channel_types);
 
 /* This is used to tell the visor bus driver which types of visor devices
  * we support, and what functions to call when a visor device that we support
-- 
1.7.9.3

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 0/3] Unisys visorbus driver autoloading patches

2015-08-06 Thread Prarit Bhargava
Greg,

These are patches that correctly implement driver autoloading for the
visorbus drivers.  These patches do touch code outside of drivers/staging,
however, since they are dependent on code in the drivers/staging area I
think the correct path is to push these through drivers/staging. (This is
an unfortunate chicken-and-egg problem with drivers/staging)

If this is incorrect, please let me know what you think the best mailing
list would be.

Signed-off-by: Prarit Bhargava 

Prarit Bhargava (3):
  mei, make modules.alias UUID information easier to read
  drivers/staging: visorbus, add module autoload functionality
  drivers, staging, unisys Add visornic module autoloading code

 drivers/misc/mei/bus.c  |6 ++
 drivers/staging/unisys/include/visorbus.h   |8 
 drivers/staging/unisys/visorbus/visorbus_main.c |1 +
 drivers/staging/unisys/visornic/visornic_main.c |1 +
 include/linux/mod_devicetable.h |   15 +++
 scripts/mod/devicetable-offsets.c   |4 
 scripts/mod/file2alias.c|   20 +---
 7 files changed, 36 insertions(+), 19 deletions(-)

-- 
1.7.9.3

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: fsl-mc: add DPAA2 overview readme

2015-08-06 Thread Stuart Yoder
Signed-off-by: Stuart Yoder 
---
 drivers/staging/fsl-mc/README.txt | 364 ++
 drivers/staging/fsl-mc/TODO   |   4 -
 2 files changed, 364 insertions(+), 4 deletions(-)
 create mode 100644 drivers/staging/fsl-mc/README.txt

diff --git a/drivers/staging/fsl-mc/README.txt 
b/drivers/staging/fsl-mc/README.txt
new file mode 100644
index 000..8214102
--- /dev/null
+++ b/drivers/staging/fsl-mc/README.txt
@@ -0,0 +1,364 @@
+Copyright (C) 2015 Freescale Semiconductor Inc.
+
+DPAA2 (Data Path Acceleration Architecture Gen2)
+
+
+This document provides an overview of the Freescale DPAA2 architecture
+and how it is integrated into the Linux kernel.
+
+Contents summary
+   -DPAA2 overview
+   -Overview of DPAA2 objects
+   -DPAA2 Linux driver architecture overview
+-bus driver
+-dprc driver
+-allocator
+-dpio driver
+-Ethernet
+-mac
+
+DPAA2 Overview
+--
+
+DPAA2 is a hardware architecture designed for high-speeed network
+packet processing.  DPAA2 consists of sophisticated mechanisms for
+processing Ethernet packets, queue management, buffer management,
+autonomous L2 switching, virtual Ethernet bridging, and accelerator
+(e.g. crypto) sharing.
+
+A DPAA2 hardware component called the Management Complex (or MC) manages the
+DPAA2 hardware resources.  The MC provides an object-based abstraction for
+software drivers to use the DPAA2 hardware.
+
+The MC uses DPAA2 hardware resources such as queues, buffer pools, and
+network ports to create functional objects/devices such as network
+interfaces, an L2 switch, or accelerator instances.
+
+The MC provides memory-mapped I/O command interfaces (MC portals)
+which DPAA2 software drivers use to operate on DPAA2 objects:
+
+ +--+
+ |  OS  |
+ |DPAA2 drivers |
+ | ||
+ +-|+
+   |
+   | (create,discover,connect
+   |  config,use,destroy)
+   |
+ DPAA2 |
+ +| mc portal |-+
+ | ||
+ |   +- - - - - - - - - - - - -V- - -+  |
+ |   |   |  |
+ |   |   Management Complex (MC) |  |
+ |   |   |  |
+ |   +- - - - - - - - - - - - - - - -+  |
+ |  |
+ | Hardware  Hardware   |
+ | Resources Objects|
+ | - ---|
+ | -queues   -DPRC  |
+ | -buffer pools -DPMCP |
+ | -Eth MACs/ports   -DPIO  |
+ | -network interface-DPNI  |
+ |  profiles -DPMAC |
+ | -queue portals-DPBP  |
+ | -MC portals...   |
+ |  ... |
+ |  |
+ +--+
+
+The MC mediates operations such as create, discover,
+connect, configuration, and destroy.  Fast-path operations
+on data, such as packet transmit/receive, are not mediated by
+the MC and are done directly using memory mapped regions in
+DPIO objects.
+
+Overview of DPAA2 Objects
+-
+The section provides a brief overview of some key objects
+in the DPAA2 hardware.  A simple scenario is described illustrating
+the objects involved in creating a network interfaces.
+
+-DPRC (Datapath Resource Container)
+
+A DPRC is an container object that holds all the other
+types of DPAA2 objects.  In the example diagram below there
+are 8 objects of 5 types (DPMCP, DPIO, DPBP, DPNI, and DPMAC)
+in the container.
+
++-+
+| DPRC|
+| |
+|  +---+  +---+  +---+  +---+  +---+  |
+|  | DPMCP |  | DPIO  |  | DPBP  |  | DPNI  |  | DPMAC |  |
+|  +---+  +---+  +---+  +---+---+  +---+---+  |
+|  | DPMCP |  | DPIO  |   |
+|  +---+  +---+   |
+|  | DPMCP |  |
+|  +---+  |
+| |
++-+
+
+From the point of view of an OS, a DPRC is b

Re: [PATCH] staging: fsl-mc: add DPAA2 overview readme

2015-08-06 Thread Greg KH
On Thu, Aug 06, 2015 at 05:41:57PM -0500, Stuart Yoder wrote:
> Signed-off-by: Stuart Yoder 

I need something for the changelog text, I can't accept a blank one.

thanks,

greg k-h

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/4] staging: wilc1000: remove WILC_memset function

2015-08-06 Thread Chaehyun Lim
Remove WILC_memset function because it is changed to memset.

Signed-off-by: Chaehyun Lim 
---
 drivers/staging/wilc1000/wilc_strutils.c |  9 -
 drivers/staging/wilc1000/wilc_strutils.h | 12 
 2 files changed, 21 deletions(-)

diff --git a/drivers/staging/wilc1000/wilc_strutils.c 
b/drivers/staging/wilc1000/wilc_strutils.c
index e014595..c15375e 100644
--- a/drivers/staging/wilc1000/wilc_strutils.c
+++ b/drivers/staging/wilc1000/wilc_strutils.c
@@ -25,15 +25,6 @@ void WILC_memcpy_INTERNAL(void *pvTarget, const void 
*pvSource, u32 u32Count)
memcpy(pvTarget, pvSource, u32Count);
 }
 
-/*!
- *  @authorsyounan
- *  @date  18 Aug 2010
- *  @version   1.0
- */
-void *WILC_memset(void *pvTarget, u8 u8SetValue, u32 u32Count)
-{
-   return memset(pvTarget, u8SetValue, u32Count);
-}
 
 /*!
  *  @authorsyounan
diff --git a/drivers/staging/wilc1000/wilc_strutils.h 
b/drivers/staging/wilc1000/wilc_strutils.h
index d144557..acc0ca4 100644
--- a/drivers/staging/wilc1000/wilc_strutils.h
+++ b/drivers/staging/wilc1000/wilc_strutils.h
@@ -71,18 +71,6 @@ static WILC_ErrNo WILC_memcpy(void *pvTarget, const void 
*pvSource, u32 u32Count
}
 }
 
-/*!
- *  @brief Sets the contents of a memory buffer with the given value
- *  @param[in] pvTarget the target buffer which contsnts will be set
- *  @param[in] u8SetValue the value to be used
- *  @param[in] u32Count the size of the memory buffer
- *  @returnvalue of pvTarget
- *  @note  this function repeats the functionality of standard memset
- *  @authorsyounan
- *  @date  18 Aug 2010
- *  @version   1.0
- */
-void *WILC_memset(void *pvTarget, u8 u8SetValue, u32 u32Count);
 
 /*!
  *  @brief copies the contents of source string into the target string
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/4] staging: wilc1000: use memset instead of WILC_memset

2015-08-06 Thread Chaehyun Lim
Use memset instead of WILC_memset.

Signed-off-by: Chaehyun Lim 
---
 drivers/staging/wilc1000/coreconfigurator.c   |  16 +--
 drivers/staging/wilc1000/host_interface.c | 134 +++---
 drivers/staging/wilc1000/wilc_wfi_cfgoperations.c |  16 +--
 3 files changed, 83 insertions(+), 83 deletions(-)

diff --git a/drivers/staging/wilc1000/coreconfigurator.c 
b/drivers/staging/wilc1000/coreconfigurator.c
index 342a336..93942b2 100644
--- a/drivers/staging/wilc1000/coreconfigurator.c
+++ b/drivers/staging/wilc1000/coreconfigurator.c
@@ -681,9 +681,9 @@ s32 CoreConfiguratorInit(void)
goto _fail_;
}
 
-   WILC_memset((void *)gps8ConfigPacket, 0, MAX_PACKET_BUFF_SIZE);
+   memset((void *)gps8ConfigPacket, 0, MAX_PACKET_BUFF_SIZE);
 
-   WILC_memset((void *)(&gstrConfigPktInfo), 0, sizeof(tstrConfigPktInfo));
+   memset((void *)(&gstrConfigPktInfo), 0, sizeof(tstrConfigPktInfo));
 _fail_:
return s32Error;
 }
@@ -812,7 +812,7 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo 
**ppstrNetworkInfo)
u32 u32Tsf_Hi;
 
pstrNetworkInfo = (tstrNetworkInfo 
*)WILC_MALLOC(sizeof(tstrNetworkInfo));
-   WILC_memset((void *)(pstrNetworkInfo), 0, 
sizeof(tstrNetworkInfo));
+   memset((void *)(pstrNetworkInfo), 0, sizeof(tstrNetworkInfo));
 
pstrNetworkInfo->s8rssi = pu8WidVal[0];
 
@@ -862,7 +862,7 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo 
**ppstrNetworkInfo)
 
if (u16IEsLen > 0) {
pstrNetworkInfo->pu8IEs = (u8 *)WILC_MALLOC(u16IEsLen);
-   WILC_memset((void *)(pstrNetworkInfo->pu8IEs), 0, 
u16IEsLen);
+   memset((void *)(pstrNetworkInfo->pu8IEs), 0, u16IEsLen);
 
WILC_memcpy(pstrNetworkInfo->pu8IEs, pu8IEs, u16IEsLen);
}
@@ -929,7 +929,7 @@ s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen,
u16 u16IEsLen = 0;
 
pstrConnectRespInfo = (tstrConnectRespInfo 
*)WILC_MALLOC(sizeof(tstrConnectRespInfo));
-   WILC_memset((void *)(pstrConnectRespInfo), 0, 
sizeof(tstrConnectRespInfo));
+   memset((void *)(pstrConnectRespInfo), 0, sizeof(tstrConnectRespInfo));
 
/* u16AssocRespLen = pu8Buffer[0]; */
u16AssocRespLen = (u16)u32BufferLen;
@@ -949,7 +949,7 @@ s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen,
u16IEsLen = u16AssocRespLen - (CAP_INFO_LEN + STATUS_CODE_LEN + 
AID_LEN);
 
pstrConnectRespInfo->pu8RespIEs = (u8 *)WILC_MALLOC(u16IEsLen);
-   WILC_memset((void *)(pstrConnectRespInfo->pu8RespIEs), 0, 
u16IEsLen);
+   memset((void *)(pstrConnectRespInfo->pu8RespIEs), 0, u16IEsLen);
 
WILC_memcpy(pstrConnectRespInfo->pu8RespIEs, pu8IEs, u16IEsLen);
pstrConnectRespInfo->u16RespIEsLen = u16IEsLen;
@@ -1023,7 +1023,7 @@ s32 ParseSurveyResults(u8 
ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZ
WILC_ERRORREPORT(s32Error, WILC_NO_MEM);
}
 
-   WILC_memset((void *)(pstrSurveyResults), 0, u32SurveyResultsCount * 
sizeof(wid_site_survey_reslts_s));
+   memset((void *)(pstrSurveyResults), 0, u32SurveyResultsCount * 
sizeof(wid_site_survey_reslts_s));
 
u32SurveyResultsCount = 0;
 
@@ -1871,7 +1871,7 @@ s32 ConfigWaitResponse(char *pcRespBuffer, s32 
s32MaxRespBuffLen, s32 *ps32Bytes
*ps32BytesRead = gstrConfigPktInfo.s32BytesRead;
}
 
-   WILC_memset((void *)(&gstrConfigPktInfo), 0, sizeof(tstrConfigPktInfo));
+   memset((void *)(&gstrConfigPktInfo), 0, sizeof(tstrConfigPktInfo));
 
return s32Error;
 }
diff --git a/drivers/staging/wilc1000/host_interface.c 
b/drivers/staging/wilc1000/host_interface.c
index 02aaf39..0c06ac2 100644
--- a/drivers/staging/wilc1000/host_interface.c
+++ b/drivers/staging/wilc1000/host_interface.c
@@ -1494,8 +1494,8 @@ static s32 Handle_Connect(void *drvHandler, 
tstrHostIFconnectAttr *pstrHostIFcon
PRINT_D(GENERIC_DBG, "Handling connect request\n");
 
#ifndef CONNECT_DIRECT
-   WILC_memset(gapu8RcvdSurveyResults[0], 0, MAX_SURVEY_RESULT_FRAG_SIZE);
-   WILC_memset(gapu8RcvdSurveyResults[1], 0, MAX_SURVEY_RESULT_FRAG_SIZE);
+   memset(gapu8RcvdSurveyResults[0], 0, MAX_SURVEY_RESULT_FRAG_SIZE);
+   memset(gapu8RcvdSurveyResults[1], 0, MAX_SURVEY_RESULT_FRAG_SIZE);
 
 
PRINT_D(HOSTINF_DBG, "Getting site survey results\n");
@@ -1972,7 +1972,7 @@ static s32 Handle_Connect(void *drvHandler, 
tstrHostIFconnectAttr *pstrHostIFcon
 
PRINT_D(HOSTINF_DBG, "could not start connecting to the 
required network\n");
 
-   WILC_memset(&strConnectInfo, 0, sizeof(tstrConnectInfo));
+   memset(&strConnectInfo, 0, sizeof(tstrConnectInfo));
 
if (pstrHostIFconnectAttr->pfConnectResult != NULL) {
if (pstrHostIFconnectA

[PATCH 3/4] staging: wilc1000: use memcmp instead of WILC_memcmp

2015-08-06 Thread Chaehyun Lim
Use memcmp instead of WILC_memcmp.

Signed-off-by: Chaehyun Lim 
---
 drivers/staging/wilc1000/host_interface.c | 20 +++---
 drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 32 +++
 2 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/drivers/staging/wilc1000/host_interface.c 
b/drivers/staging/wilc1000/host_interface.c
index 0c06ac2..bc06d56 100644
--- a/drivers/staging/wilc1000/host_interface.c
+++ b/drivers/staging/wilc1000/host_interface.c
@@ -801,7 +801,7 @@ s32 Handle_get_IPAddress(void *drvHandler, u8 *pu8IPAddr, 
u8 idx)
/*get the value by searching the local copy*/
WILC_FREE(strWID.ps8WidVal);
 
-   if (WILC_memcmp(gs8GetIP[idx], gs8SetIP[idx], IP_ALEN) != 0)
+   if (memcmp(gs8GetIP[idx], gs8SetIP[idx], IP_ALEN) != 0)
host_int_setup_ipaddress((WILC_WFIDrvHandle)pstrWFIDrv, 
gs8SetIP[idx], idx);
 
if (s32Error != WILC_SUCCESS) {
@@ -1527,7 +1527,7 @@ static s32 Handle_Connect(void *drvHandler, 
tstrHostIFconnectAttr *pstrHostIFcon
 
 
for (i = 0; i < pstrWFIDrv->u32SurveyResultsCount; i++) {
-   if (WILC_memcmp(pstrWFIDrv->astrSurveyResults[i].SSID,
+   if (memcmp(pstrWFIDrv->astrSurveyResults[i].SSID,
pstrHostIFconnectAttr->pu8ssid,
pstrHostIFconnectAttr->ssidLen) == 0) {
PRINT_INFO(HOSTINF_DBG, "Network with required SSID is 
found %s\n", pstrHostIFconnectAttr->pu8ssid);
@@ -1540,7 +1540,7 @@ static s32 Handle_Connect(void *drvHandler, 
tstrHostIFconnectAttr *pstrHostIFcon
/* BSSID is also passed from the user, so 
decision of matching
 * should consider also this passed BSSID */
 
-   if 
(WILC_memcmp(pstrWFIDrv->astrSurveyResults[i].BSSID,
+   if 
(memcmp(pstrWFIDrv->astrSurveyResults[i].BSSID,
pstrHostIFconnectAttr->pu8bssid,
6) == 0) {
PRINT_INFO(HOSTINF_DBG, "BSSID is 
passed from the user and matched\n");
@@ -1648,7 +1648,7 @@ static s32 Handle_Connect(void *drvHandler, 
tstrHostIFconnectAttr *pstrHostIFcon
 
/* if we try to connect to an already connected AP then discard the 
request */
 
-   if (WILC_memcmp(pstrHostIFconnectAttr->pu8bssid, u8ConnectedSSID, 
ETH_ALEN) == 0) {
+   if (memcmp(pstrHostIFconnectAttr->pu8bssid, u8ConnectedSSID, ETH_ALEN) 
== 0) {
 
s32Error = WILC_SUCCESS;
PRINT_ER("Trying to connect to an already connected AP, Discard 
connect request\n");
@@ -1720,7 +1720,7 @@ static s32 Handle_Connect(void *drvHandler, 
tstrHostIFconnectAttr *pstrHostIFcon
u32WidsCount++;
 
/*BugID_5137*/
-   if (WILC_memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) {
+   if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) {
 
gu32FlushedInfoElemAsocSize = 
pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen;
gu8FlushedInfoElemAsoc =  
WILC_MALLOC(gu32FlushedInfoElemAsocSize);
@@ -1735,7 +1735,7 @@ static s32 Handle_Connect(void *drvHandler, 
tstrHostIFconnectAttr *pstrHostIFcon
u32WidsCount++;
 
/*BugID_5137*/
-   if (WILC_memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7))
+   if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7))
gu8Flushed11iMode = pstrWFIDrv->strWILC_UsrConnReq.u8security;
 
PRINT_INFO(HOSTINF_DBG, "Encrypt Mode = %x\n", 
pstrWFIDrv->strWILC_UsrConnReq.u8security);
@@ -1748,7 +1748,7 @@ static s32 Handle_Connect(void *drvHandler, 
tstrHostIFconnectAttr *pstrHostIFcon
u32WidsCount++;
 
/*BugID_5137*/
-   if (WILC_memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7))
+   if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7))
gu8FlushedAuthType = 
(u8)pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type;
 
PRINT_INFO(HOSTINF_DBG, "Authentication Type = %x\n", 
pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type);
@@ -1803,7 +1803,7 @@ static s32 Handle_Connect(void *drvHandler, 
tstrHostIFconnectAttr *pstrHostIFcon
strWIDList[u32WidsCount].ps8WidVal = 
WILC_MALLOC(strWIDList[u32WidsCount].s32ValueSize);
 
/*BugID_5137*/
-   if (WILC_memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) {
+   if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) {
gu32FlushedJoinReqSize = strWIDList[u32WidsCount].s32ValueSize;
gu8FlushedJoinReq = WILC_MALLOC(gu32FlushedJoinReqSize);
}
@@ -1940,7 +1940,7 @@ static s32 Handle_Connect(void *drvHandler, 
tstrHostIFconnectAttr *pstrHostIFcon
/* // */
 
/*BugID_5137*/
-   if (WILC_memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) 

[PATCH 4/4] staging: wilc1000: remove WILC_memcmp function

2015-08-06 Thread Chaehyun Lim
Remove WILC_memcmp function because it is changed to memcmp.

Signed-off-by: Chaehyun Lim 
---
 drivers/staging/wilc1000/wilc_strutils.c |  9 -
 drivers/staging/wilc1000/wilc_strutils.h | 13 -
 2 files changed, 22 deletions(-)

diff --git a/drivers/staging/wilc1000/wilc_strutils.c 
b/drivers/staging/wilc1000/wilc_strutils.c
index c15375e..3600706 100644
--- a/drivers/staging/wilc1000/wilc_strutils.c
+++ b/drivers/staging/wilc1000/wilc_strutils.c
@@ -4,15 +4,6 @@
 #include "wilc_strutils.h"
 
 
-/*!
- *  @authorsyounan
- *  @date  18 Aug 2010
- *  @version   1.0
- */
-s32 WILC_memcmp(const void *pvArg1, const void *pvArg2, u32 u32Count)
-{
-   return memcmp(pvArg1, pvArg2, u32Count);
-}
 
 
 /*!
diff --git a/drivers/staging/wilc1000/wilc_strutils.h 
b/drivers/staging/wilc1000/wilc_strutils.h
index acc0ca4..9e3c5d9 100644
--- a/drivers/staging/wilc1000/wilc_strutils.h
+++ b/drivers/staging/wilc1000/wilc_strutils.h
@@ -14,19 +14,6 @@
 #include 
 #include "wilc_errorsupport.h"
 
-/*!
- *  @brief Compares two memory buffers
- *  @param[in] pvArg1 pointer to the first memory location
- *  @param[in] pvArg2 pointer to the second memory location
- *  @param[in] u32Count the size of the memory buffers
- *  @return0 if the 2 buffers are equal, 1 if pvArg1 is bigger than pvArg2,
- *  -1 if pvArg1 smaller than pvArg2
- *  @note  this function repeats the functionality of standard memcmp
- *  @authorsyounan
- *  @date  18 Aug 2010
- *  @version   1.0
- */
-s32 WILC_memcmp(const void *pvArg1, const void *pvArg2, u32 u32Count);
 
 /*!
  *  @brief Internal implementation for memory copy
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 1/4] staging: wilc1000: use memset instead of WILC_memset

2015-08-06 Thread Julian Calaby
Hi Chaehyun,

On Fri, Aug 7, 2015 at 10:02 AM, Chaehyun Lim  wrote:
> Use memset instead of WILC_memset.
>
> Signed-off-by: Chaehyun Lim 
> ---
>  drivers/staging/wilc1000/coreconfigurator.c   |  16 +--
>  drivers/staging/wilc1000/host_interface.c | 134 
> +++---
>  drivers/staging/wilc1000/wilc_wfi_cfgoperations.c |  16 +--
>  3 files changed, 83 insertions(+), 83 deletions(-)
>
> diff --git a/drivers/staging/wilc1000/coreconfigurator.c 
> b/drivers/staging/wilc1000/coreconfigurator.c
> index 342a336..93942b2 100644
> --- a/drivers/staging/wilc1000/coreconfigurator.c
> +++ b/drivers/staging/wilc1000/coreconfigurator.c
> @@ -681,9 +681,9 @@ s32 CoreConfiguratorInit(void)
> goto _fail_;
> }
>
> -   WILC_memset((void *)gps8ConfigPacket, 0, MAX_PACKET_BUFF_SIZE);
> +   memset((void *)gps8ConfigPacket, 0, MAX_PACKET_BUFF_SIZE);

I believe you can get rid of these void* casts, you're modifying the
line anyway.

Thanks,

-- 
Julian Calaby

Email: julian.cal...@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2] staging: fsl-mc: add DPAA2 overview readme

2015-08-06 Thread Stuart Yoder
add README file providing an overview of the DPAA2 architecture
and how it is integrated in Linux

Signed-off-by: Stuart Yoder 
---
-v2: added changelog text

 drivers/staging/fsl-mc/README.txt | 364 ++
 drivers/staging/fsl-mc/TODO   |   4 -
 2 files changed, 364 insertions(+), 4 deletions(-)
 create mode 100644 drivers/staging/fsl-mc/README.txt

diff --git a/drivers/staging/fsl-mc/README.txt 
b/drivers/staging/fsl-mc/README.txt
new file mode 100644
index 000..8214102
--- /dev/null
+++ b/drivers/staging/fsl-mc/README.txt
@@ -0,0 +1,364 @@
+Copyright (C) 2015 Freescale Semiconductor Inc.
+
+DPAA2 (Data Path Acceleration Architecture Gen2)
+
+
+This document provides an overview of the Freescale DPAA2 architecture
+and how it is integrated into the Linux kernel.
+
+Contents summary
+   -DPAA2 overview
+   -Overview of DPAA2 objects
+   -DPAA2 Linux driver architecture overview
+-bus driver
+-dprc driver
+-allocator
+-dpio driver
+-Ethernet
+-mac
+
+DPAA2 Overview
+--
+
+DPAA2 is a hardware architecture designed for high-speeed network
+packet processing.  DPAA2 consists of sophisticated mechanisms for
+processing Ethernet packets, queue management, buffer management,
+autonomous L2 switching, virtual Ethernet bridging, and accelerator
+(e.g. crypto) sharing.
+
+A DPAA2 hardware component called the Management Complex (or MC) manages the
+DPAA2 hardware resources.  The MC provides an object-based abstraction for
+software drivers to use the DPAA2 hardware.
+
+The MC uses DPAA2 hardware resources such as queues, buffer pools, and
+network ports to create functional objects/devices such as network
+interfaces, an L2 switch, or accelerator instances.
+
+The MC provides memory-mapped I/O command interfaces (MC portals)
+which DPAA2 software drivers use to operate on DPAA2 objects:
+
+ +--+
+ |  OS  |
+ |DPAA2 drivers |
+ | ||
+ +-|+
+   |
+   | (create,discover,connect
+   |  config,use,destroy)
+   |
+ DPAA2 |
+ +| mc portal |-+
+ | ||
+ |   +- - - - - - - - - - - - -V- - -+  |
+ |   |   |  |
+ |   |   Management Complex (MC) |  |
+ |   |   |  |
+ |   +- - - - - - - - - - - - - - - -+  |
+ |  |
+ | Hardware  Hardware   |
+ | Resources Objects|
+ | - ---|
+ | -queues   -DPRC  |
+ | -buffer pools -DPMCP |
+ | -Eth MACs/ports   -DPIO  |
+ | -network interface-DPNI  |
+ |  profiles -DPMAC |
+ | -queue portals-DPBP  |
+ | -MC portals...   |
+ |  ... |
+ |  |
+ +--+
+
+The MC mediates operations such as create, discover,
+connect, configuration, and destroy.  Fast-path operations
+on data, such as packet transmit/receive, are not mediated by
+the MC and are done directly using memory mapped regions in
+DPIO objects.
+
+Overview of DPAA2 Objects
+-
+The section provides a brief overview of some key objects
+in the DPAA2 hardware.  A simple scenario is described illustrating
+the objects involved in creating a network interfaces.
+
+-DPRC (Datapath Resource Container)
+
+A DPRC is an container object that holds all the other
+types of DPAA2 objects.  In the example diagram below there
+are 8 objects of 5 types (DPMCP, DPIO, DPBP, DPNI, and DPMAC)
+in the container.
+
++-+
+| DPRC|
+| |
+|  +---+  +---+  +---+  +---+  +---+  |
+|  | DPMCP |  | DPIO  |  | DPBP  |  | DPNI  |  | DPMAC |  |
+|  +---+  +---+  +---+  +---+---+  +---+---+  |
+|  | DPMCP |  | DPIO  |   |
+|  +---+  +---+   |
+|  | DPMCP |  |
+|  +---+  |
+| 

[PATCH 1/1] Staging: media: davinci_vpfe: fix over 80 characters coding style issue.

2015-08-06 Thread Junsu Shin
 This is a patch to the dm365_ipipe.c that fixes over 80 characters warning 
detected by checkpatch.pl.
 Signed-off-by: Junsu Shin 

---
 drivers/staging/media/davinci_vpfe/dm365_ipipe.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/media/davinci_vpfe/dm365_ipipe.c 
b/drivers/staging/media/davinci_vpfe/dm365_ipipe.c
index 1bbb90c..57cd274 100644
--- a/drivers/staging/media/davinci_vpfe/dm365_ipipe.c
+++ b/drivers/staging/media/davinci_vpfe/dm365_ipipe.c
@@ -1536,8 +1536,9 @@ ipipe_get_format(struct v4l2_subdev *sd, struct 
v4l2_subdev_pad_config *cfg,
  * @fse: pointer to v4l2_subdev_frame_size_enum structure.
  */
 static int
-ipipe_enum_frame_size(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config 
*cfg,
- struct v4l2_subdev_frame_size_enum *fse)
+ipipe_enum_frame_size(struct v4l2_subdev *sd,
+   struct v4l2_subdev_pad_config *cfg,
+   struct v4l2_subdev_frame_size_enum *fse)
 {
struct vpfe_ipipe_device *ipipe = v4l2_get_subdevdata(sd);
struct v4l2_mbus_framefmt format;
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


RE: [PATCH 1/1] X86: mshyperv.c: Fix a compilation issue.

2015-08-06 Thread KY Srinivasan


> -Original Message-
> From: Greg KH [mailto:gre...@linuxfoundation.org]
> Sent: Thursday, August 6, 2015 2:11 PM
> To: KY Srinivasan 
> Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org;
> vkuzn...@redhat.com; s...@canb.auug.org.au; t...@linutronix.de;
> mi...@redhat.com; h...@zytor.com; x...@kernel.org; Haiyang Zhang
> 
> Subject: Re: [PATCH 1/1] X86: mshyperv.c: Fix a compilation issue.
> 
> On Thu, Aug 06, 2015 at 02:41:24PM -0700, K. Y. Srinivasan wrote:
> > Building with a random configuration file, this build failure
> > was reported:
> >
> > arch/x86/built-in.o: In function `hv_machine_crash_shutdown':
> > arch/x86/kernel/cpu/mshyperv.c:112: undefined
> > reference to `native_machine_crash_shutdown'
> >
> > This patch fixes the problem
> >
> > Reported-by: Jim Davis 
> > Signed-off-by: K. Y. Srinivasan 
> > ---
> >  arch/x86/kernel/cpu/mshyperv.c |2 ++
> >  1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/x86/kernel/cpu/mshyperv.c
> b/arch/x86/kernel/cpu/mshyperv.c
> > index f794bfa..0faed5e0 100644
> > --- a/arch/x86/kernel/cpu/mshyperv.c
> > +++ b/arch/x86/kernel/cpu/mshyperv.c
> > @@ -109,7 +109,9 @@ static void hv_machine_crash_shutdown(struct
> pt_regs *regs)
> >  {
> > if (hv_crash_handler)
> > hv_crash_handler(regs);
> > +#ifdef CONFIG_KEXEC_CORE
> > native_machine_crash_shutdown(regs);
> > +#endif
> 
> Why is kexec the factor here?  And if it really does, can't it just be
> CONFIG_KEXEC, or, can kexec provide a "dummy" inline function so that
> you don't have to have a #ifdef in a .c file?

Greg,

I am on vacation till next Tuesday. I will address your concern after I get 
back if Vitaly
has not addressed it by then.

Regards,

K. Y

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 1/1] Staging: media: davinci_vpfe: fix over 80 characters coding style issue.

2015-08-06 Thread Sudip Mukherjee
On Thu, Aug 06, 2015 at 09:55:54PM -0500, Junsu Shin wrote:
>  This is a patch to the dm365_ipipe.c that fixes over 80 characters warning 
> detected by checkpatch.pl.
>  Signed-off-by: Junsu Shin 
please do not use whitespace before Signed-off-by: line.
> 
> ---
>  drivers/staging/media/davinci_vpfe/dm365_ipipe.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/media/davinci_vpfe/dm365_ipipe.c 
> b/drivers/staging/media/davinci_vpfe/dm365_ipipe.c
> index 1bbb90c..57cd274 100644
> --- a/drivers/staging/media/davinci_vpfe/dm365_ipipe.c
> +++ b/drivers/staging/media/davinci_vpfe/dm365_ipipe.c
> @@ -1536,8 +1536,9 @@ ipipe_get_format(struct v4l2_subdev *sd, struct 
> v4l2_subdev_pad_config *cfg,
>   * @fse: pointer to v4l2_subdev_frame_size_enum structure.
>   */
>  static int
> -ipipe_enum_frame_size(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config 
> *cfg,
> -   struct v4l2_subdev_frame_size_enum *fse)
> +ipipe_enum_frame_size(struct v4l2_subdev *sd,
> + struct v4l2_subdev_pad_config *cfg,
> + struct v4l2_subdev_frame_size_enum *fse)
since you are modifying this line, please fix up the indention also.

regards
sudip
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel