201041
authorhgs
Thu, 14 Oct 2010 12:47:54 +0300
changeset 78 3f0699f2e14c
parent 77 8a984d260a2d
child 83 11da52d4c847
201041
accessoryservices/pluggeddisplay/tsrc/stubs/tvoutconfig/bwins/tvoutconfig_stubu.def
accessoryservices/pluggeddisplay/tsrc/stubs/tvoutconfig/bwins/tvoutconfigu.def
accessoryservices/pluggeddisplay/tsrc/stubs/tvoutconfig/eabi/tvoutconfig_stubu.def
accessoryservices/pluggeddisplay/tsrc/stubs/tvoutconfig/eabi/tvoutconfigu.def
commonservices/PlatformEnv/platformver/src/versioninfo.cpp
commonservices/PlatformEnv/platformver/tsrc/platformvertest/src/platformvertestcases.cpp
devicesrv_plat/energymgmt_chipset_api/group/bld.inf
devicesrv_plat/energymgmt_chipset_api/inc/adc_chipset_api.h
devicesrv_plat/energymgmt_chipset_api/inc/adc_types.h
devicesrv_plat/energymgmt_chipset_api/inc/em_chipset_api.h
devicesrv_plat/group/bld.inf
devicesrv_plat/light_chipset_api/group/bld.inf
devicesrv_plat/light_chipset_api/inc/light_chipset_api.h
devicesrv_plat/thermal_shai_api/group/bld.inf
devicesrv_plat/thermal_shai_api/inc/pm_thermalsensing_chipset_api.h
devicesrv_pub/version_info_api/inc/versioninfo.h
devicesrv_pub/version_info_api/tsrc/bc/platformvertest/src/platformvertestcases.cpp
hwrmhaptics/tsrc/haptics_stif/group/envrecall.cmd
hwrmhaptics/tsrc/haptics_stif/group/envsetup.cmd
package_definition.xml
resourceinterfaces/fmtransmittercontrol/inc/HWRMFmTx.h
resourcemgmt/hwresourcesmgr/server/inc/HWRMFmTxCommonData.h
resourcemgmt/hwresourcesmgr/server/inc/HWRMFmTxService.h
resourcemgmt/hwresourcesmgr/server/src/HWRMFmTxCommonData.cpp
resourcemgmt/hwresourcesmgr/server/src/HWRMFmTxService.cpp
resourcemgmt/hwresourcesmgr/server/src/HWRMFmTxStateUtility.cpp
resourcemgmt/hwresourcesmgr/test/te_hwrm/hwrmtest.cpp
resourcemgmt/hwresourcesmgr/test/te_hwrm/hwrmtest.h
resourcemgmt/hwresourcesmgr/test/te_hwrm/te_hwrm_fmtx.script
resourcemgmt/hwresourcesmgrconfig/conf/hwresourcesandenhancements.confml
resourcemgmt/hwrmtargetmodifierplugin/tsrc/hwrmtargetmodifierplugintest/src/hwrmtargetmodifierplugintest.cpp
sysstatemgmt/ssmcmdlists/data/uiservicescmdlist.rss
sysstatemgmt/systemstateplugins/gsapolicy/resource/gsastartupcmdlist1.rss
sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_publishsimownedandchanged.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/pluggeddisplay/tsrc/stubs/tvoutconfig/bwins/tvoutconfig_stubu.def	Thu Oct 14 12:47:54 2010 +0300
@@ -0,0 +1,7 @@
+EXPORTS
+	?TagAssign@STvOutConfigSharedData@@QAEXXZ @ 1 NONAME ; void STvOutConfigSharedData::TagAssign(void)
+	?ZeroLoadDataNotTag@STvOutConfigSharedData@@QAEXXZ @ 2 NONAME ; void STvOutConfigSharedData::ZeroLoadDataNotTag(void)
+	?TagCheckL@STvOutConfigSharedData@@QAEXXZ @ 3 NONAME ; void STvOutConfigSharedData::TagCheckL(void)
+	?ApiVersion@CTvOutConfig@@SAIXZ @ 4 NONAME ; unsigned int CTvOutConfig::ApiVersion(void)
+	?NewL@CTvOutConfig@@SAPAV1@XZ @ 5 NONAME ; class CTvOutConfig * CTvOutConfig::NewL(void)
+
--- a/accessoryservices/pluggeddisplay/tsrc/stubs/tvoutconfig/bwins/tvoutconfigu.def	Tue Oct 12 15:02:43 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-EXPORTS
-	?TagAssign@STvOutConfigSharedData@@QAEXXZ @ 1 NONAME ; void STvOutConfigSharedData::TagAssign(void)
-	?ZeroLoadDataNotTag@STvOutConfigSharedData@@QAEXXZ @ 2 NONAME ; void STvOutConfigSharedData::ZeroLoadDataNotTag(void)
-	?TagCheckL@STvOutConfigSharedData@@QAEXXZ @ 3 NONAME ; void STvOutConfigSharedData::TagCheckL(void)
-	?ApiVersion@CTvOutConfig@@SAIXZ @ 4 NONAME ; unsigned int CTvOutConfig::ApiVersion(void)
-	?NewL@CTvOutConfig@@SAPAV1@XZ @ 5 NONAME ; class CTvOutConfig * CTvOutConfig::NewL(void)
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/pluggeddisplay/tsrc/stubs/tvoutconfig/eabi/tvoutconfig_stubu.def	Thu Oct 14 12:47:54 2010 +0300
@@ -0,0 +1,11 @@
+EXPORTS
+	_ZN12CTvOutConfig10ApiVersionEv @ 1 NONAME
+	_ZN12CTvOutConfig4NewLEv @ 2 NONAME
+	_ZN22STvOutConfigSharedData18ZeroLoadDataNotTagEv @ 3 NONAME
+	_ZN22STvOutConfigSharedData9TagAssignEv @ 4 NONAME
+	_ZN22STvOutConfigSharedData9TagCheckLEv @ 5 NONAME
+	_ZTI15CTvOutConfigImp @ 6 NONAME ; #<TI>#
+	_ZTI23CTVOutStubEventListener @ 7 NONAME ; #<TI>#
+	_ZTV15CTvOutConfigImp @ 8 NONAME ; #<VT>#
+	_ZTV23CTVOutStubEventListener @ 9 NONAME ; #<VT>#
+
--- a/accessoryservices/pluggeddisplay/tsrc/stubs/tvoutconfig/eabi/tvoutconfigu.def	Tue Oct 12 15:02:43 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-EXPORTS
-	_ZN12CTvOutConfig10ApiVersionEv @ 1 NONAME
-	_ZN12CTvOutConfig4NewLEv @ 2 NONAME
-	_ZN22STvOutConfigSharedData18ZeroLoadDataNotTagEv @ 3 NONAME
-	_ZN22STvOutConfigSharedData9TagAssignEv @ 4 NONAME
-	_ZN22STvOutConfigSharedData9TagCheckLEv @ 5 NONAME
-	_ZTI15CTvOutConfigImp @ 6 NONAME ; #<TI>#
-	_ZTI23CTVOutStubEventListener @ 7 NONAME ; #<TI>#
-	_ZTV15CTvOutConfigImp @ 8 NONAME ; #<VT>#
-	_ZTV23CTVOutStubEventListener @ 9 NONAME ; #<VT>#
-
--- a/commonservices/PlatformEnv/platformver/src/versioninfo.cpp	Tue Oct 12 15:02:43 2010 +0300
+++ b/commonservices/PlatformEnv/platformver/src/versioninfo.cpp	Thu Oct 14 12:47:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -23,8 +23,8 @@
 #include "platformverdebug.h"
 
 // CONSTANTS
-_LIT( KS60ProductIDFiles, "z:\\system\\install\\series60v*.sis" );
-const TInt KS60ProductIDPos = 9; // Length of 'series60v'
+_LIT( KS60ProductIDFiles, "z:\\system\\install\\Symbianv*.sis" );
+const TInt KS60ProductIDPos = 8; // Length of 'Symbianv'
 _LIT( KS60ProductIDSplitMark, "." ); // For splitting 'XX.YY' to 'XX' and 'YY'
 
 
--- a/commonservices/PlatformEnv/platformver/tsrc/platformvertest/src/platformvertestcases.cpp	Tue Oct 12 15:02:43 2010 +0300
+++ b/commonservices/PlatformEnv/platformver/tsrc/platformvertest/src/platformvertestcases.cpp	Thu Oct 14 12:47:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -51,7 +51,7 @@
 
 // ============================= LOCAL FUNCTIONS ===============================
 
-_LIT( KS60ProductIDFiles, "z:\\system\\install\\series60v*.sis" );
+_LIT( KS60ProductIDFiles, "z:\\system\\install\\Symbianv*.sis" );
 
 
 // -----------------------------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicesrv_plat/energymgmt_chipset_api/group/bld.inf	Thu Oct 14 12:47:54 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  File that exports the files belonging to 
+*                Energy Management Chipset API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/adc_chipset_api.h     OS_LAYER_PLATFORM_EXPORT_PATH(adc_chipset_api.h)
+../inc/adc_types.h     OS_LAYER_PLATFORM_EXPORT_PATH(adc_types.h)
+../inc/em_chipset_api.h     OS_LAYER_PLATFORM_EXPORT_PATH(em_chipset_api.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicesrv_plat/energymgmt_chipset_api/inc/adc_chipset_api.h	Thu Oct 14 12:47:54 2010 +0300
@@ -0,0 +1,174 @@
+/*
+ Nokia/Devices/R&D/CT/Adaptation SW/BB
+ CONFIDENTIAL
+ Deliverable software
+
+
+
+ adc_chipset_api.h
+ --------------------------------
+
+ SW Include Document - Symbian OS
+
+
+
+ Document identification and location in Synergy/CM
+
+ Database:           co1core
+
+ Object (this information is substituted by Synergy/CM):
+ %name:           adc_chipset_api.h %
+ %cvtype:         incl %
+ %instance:       bh1dsgas_1 %
+ %version:        1 %
+ %date_modified:  Wed Oct 06 17:16:07 2010 %
+
+ Copyright (c) Nokia. This material, including documentation and any related
+ computer programs, is protected by copyright controlled by Nokia.
+ All rights are reserved. Copying, including reproducing, storing, adapting or
+ translating, any or all of this material requires the prior written consent
+ of Nokia. This material also contains confidential information, which may not
+ be disclosed to others without the prior written consent of Nokia.
+ */
+
+/** @file
+ @brief Chipset API H Template
+
+ This is a header template for Chipset API work. This template should not be
+ used as a normal code template because the location of where the API is
+ documented is different in normal coding style! Doxygen commenting style tries
+ to be similar what Symbian is using for their kernel side development.
+
+ You can define here also the scope of the whole API see below, or you can
+ define the scope separately before the class or even before the function if
+ that is needed.
+
+ @publishedDeviceAbstraction
+ */
+
+#ifndef ADC_CHIPSET_API_H
+#define ADC_CHIPSET_API_H
+
+/* ---------------------------------------------------------------------------
+ *
+ * CONSTANTS
+ *
+ */
+
+/* Battery Voltage (VBAT) */
+#define HAL_ADC_CHIPSET_VBAT 0x01
+
+/* Battery Size Identification (BSI) */
+#define HAL_ADC_CHIPSET_BSI 0x04
+
+/* Battery TEMPerature (BTEMP) */
+#define HAL_ADC_CHIPSET_BTEMP 0x05
+
+/* Power Amplifier TEMPerature (PATEMP) */
+#define HAL_ADC_PATEMP 0x09
+
+/* Battery current (positive: current from battery to phone, negative: current running to the battery) */
+/* Ibat can be implemented as a physical or logical adc channel, in case of logical this channel is still used in calibration */
+#define HAL_ADC_CHIPSET_IBAT 0x0E
+
+/* PWB Temperature */
+#define HAL_ADC_CHIPSET_PWBTEMP 0x22
+
+/* Main channel  */
+#define HAL_ADC_MAIN_CAL 0xFE
+
+#include <kernel.h>
+#include <platform.h>
+
+/* ---------------------------------------------------------------------------
+ *
+ * TYPES
+ *
+ */
+
+/*
+ * Type definition for the call-back function used writing to
+ *  asynchronous em callback.
+ */
+typedef void (*HAL_ADC_CALLBACK)(TUint event, TInt p1, TAny* p2);
+
+/* ---------------------------------------------------------------------------
+ *
+ * FUNCTIONAL PROTOTYPES AND MACROS
+ *
+ */
+class TAdcHal
+    {
+
+    // Class declaration
+
+    /**
+     Implements AdcHal chipset
+     */
+
+public:
+
+    enum THalAdcCalType
+        {
+        EHalAdcCalAppliedVoltage = 1,
+        EHalAdcCalAppliedCurrent,
+        EHalAdcCalSensor
+        };
+
+    /* ---------------------------------------------------------------------------
+     *
+     * DATA STRUCTURES
+     *
+     */
+
+    class HAL_ADC_CAL_DATA_ELEMENT_TYPE
+        {
+    public:
+        TUint8 Channel;
+        TUint16 RawReading;
+        THalAdcCalType Type;
+        TInt32 ReferenceValue;
+        TInt32 Identification;
+        };
+
+    class HAL_ADC_CAL_DATA_TYPE
+        {
+    public:
+        TUint16 NumberOfElements;
+        HAL_ADC_CAL_DATA_ELEMENT_TYPE *Element;
+        };
+
+    /*
+     * Constructor:
+     */
+
+    TAdcHal();
+
+    /*
+     * Extension entrypoint
+     */
+    IMPORT_C static TAdcHal* hal_adc_entry_point();
+
+    /* Initialisation */
+    virtual void hal_adc_init();
+
+    /* Read/convert raw values */
+    virtual TInt hal_adc_raw_read(TUint channel, TUint* value,
+            HAL_ADC_CALLBACK adc_handler, TAny* context);
+    virtual TInt hal_adc_unit_convert(TUint channel, TUint value);
+
+    /* Calibration depending function */
+    virtual TInt hal_adc_unit_read(TUint channel, TInt* value,
+            HAL_ADC_CALLBACK adc_handler, TAny* context);
+    virtual TInt hal_adc_cal_unit_conv(TUint channel, TUint rawval,
+            TInt *unitval);
+    virtual TInt hal_adc_cal_get(TUint8 channel, TUint *identification,
+            TInt *value1, TInt *value2, TInt *value3);
+    virtual TInt hal_adc_cal_set(HAL_ADC_CAL_DATA_TYPE *data);
+    virtual TInt hal_adc_cal_store();
+    virtual TInt hal_adc_unit_lock_channel(TUint channel, TBool action,
+            TInt value);
+    };
+
+#endif /* ADC_CHIPSET_API_H */
+/* End of Include File */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicesrv_plat/energymgmt_chipset_api/inc/adc_types.h	Thu Oct 14 12:47:54 2010 +0300
@@ -0,0 +1,38 @@
+/*
+  adc_types.h
+
+  Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+  All rights reserved.
+
+  This program and the accompanying materials are made available 
+  under the terms of the Eclipse Public License v1.0 which accompanies 
+  this distribution, and is available at 
+  http://www.eclipse.org/legal/epl-v10.html
+
+  Initial Contributors:
+  Nokia Corporation - initial contribution.
+
+  Contributors:
+*/
+
+/** @file
+@brief Energy Management Chipset API H
+
+This is the header file for Energy Management Chipset API that is used to access 
+the Energy Management releated service provided by the third party chipset vendor.
+
+@publishedDeviceAbstraction
+*/
+
+#include<kernel.h>
+#include <kern_priv.h>
+
+
+
+typedef TUint8 uint8;
+typedef TUint16 uint16;
+typedef TUint32 uint32;
+
+typedef TInt32 int32;
+
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicesrv_plat/energymgmt_chipset_api/inc/em_chipset_api.h	Thu Oct 14 12:47:54 2010 +0300
@@ -0,0 +1,222 @@
+/*
+ Nokia/Devices/R&D/CT/Adaptation SW/BB
+ CONFIDENTIAL
+ Deliverable software
+
+
+
+ em_chipset_api.h
+ --------------------------------
+
+ SW Include Document - Symbian OS
+
+
+
+ Document identification and location in Synergy/CM
+
+ Database:           co1core
+
+ Object (this information is substituted by Synergy/CM):
+ %name:           em_chipset_api.h %
+ %cvtype:         incl %
+ %instance:       bh1dsgas_1 %
+ %version:        1 %
+ %date_modified:  Wed Oct 06 17:16:17 2010 %
+
+ Copyright (c) Nokia. This material, including documentation and any related
+ computer programs, is protected by copyright controlled by Nokia.
+ All rights are reserved. Copying, including reproducing, storing, adapting or
+ translating, any or all of this material requires the prior written consent
+ of Nokia. This material also contains confidential information, which may not
+ be disclosed to others without the prior written consent of Nokia.
+ */
+
+/** @file
+ @brief Chipset API H Template
+
+ This is a header template for Chipset API work. This template should not be
+ used as a normal code template because the location of where the API is
+ documented is different in normal coding style! Doxygen commenting style tries
+ to be similar what Symbian is using for their kernel side development.
+
+ You can define here also the scope of the whole API see below, or you can
+ define the scope separately before the class or even before the function if
+ that is needed.
+
+ @publishedDeviceAbstraction
+ */
+
+#ifndef EM_CHIPSET_API_H
+#define EM_CHIPSET_API_H
+
+#include <kernel.h>
+#include <platform.h>
+
+/* ---------------------------------------------------------------------------
+ *
+ * TYPES
+ *
+ */
+
+/*
+ * Type definition for the call-back function used writing to
+ *  asynchronous em callback. Callback is executed in the EM chipset's context.
+ */
+typedef void (*HAL_EM_CALLBACK)(TUint event, TInt p1, TAny* p2);
+
+/* ---------------------------------------------------------------------------
+ *
+ * FUNCTIONAL PROTOTYPES AND MACROS
+ *
+ */
+
+class TEmHal
+    {
+    // Class declaration
+
+    /**
+     Implements EmHal chipset
+     */
+public:
+
+    /* ---------------------------------------------------------------------------
+     *
+     * CONSTANTS
+     *
+     */
+
+    enum THalEmChaEvtType
+        {
+        EHalEMChaChargeStarted = 1,
+        EHalEmChaChargeStopped,
+        EHalEamChaChargeReady,
+        EHalEamChaChargeChargerType,
+        EHalEamChaChargeFull,
+        EHalEamChaChargeError
+        };
+
+    enum THalEmChaChargerType
+        {
+        EHalEmChaChargerNone = 1,
+        EHalEmChaChargerSpecial,
+        EHalEmChaChargerDynamo
+        };
+
+    enum THalEmChaSource
+        {
+        EHalEmChaSourceDynamo = 1, 
+        EHalEmChaSourceUsb
+        };
+
+    enum THalEmIbatEvtType
+        {
+        EHalEmChaIbatStarted = 1,
+        EHalEmChaIbatStopped,
+        EHalEmChaIbatSampling,
+        EHalEmChaIbatError
+        };
+
+    enum THalEmVbatEvtType
+        {
+        EHalEmVbatTxOn = 1,
+        EHalEmVbatTxOff,
+        EHalEmVbatChOn,
+        EHalEmVbatChOff,
+        EHalEmVbatError
+        };
+
+    enum THalEmBsiEvtType
+        {
+        EHalEmBsiFloating = 1
+        };
+
+    enum THalEmDbiEvtType
+        {
+        EHalEmDbiAuthenticationOk = 1,
+        EHalEmDbiAuthenticationFailed,
+        EHalEmDbiReadReady,
+        EHalEmDbiReadError,
+        EHalEmDbiWriteReady,
+        EHalEmDbiWriteError
+        };
+
+    /*
+     * Constructor:
+     */
+
+    TEmHal();
+
+    /*
+     * Extension entrypoint
+     */
+
+    IMPORT_C static TEmHal* hal_em_entry_point();
+
+    /*
+     * INIT (setup):
+     */
+
+    virtual void hal_em_init(HAL_EM_CALLBACK cha_handler,
+            HAL_EM_CALLBACK ibat_handler, HAL_EM_CALLBACK vbat_handler,
+            HAL_EM_CALLBACK bsi_handler
+			
+			);
+
+    /*
+     * CHARGING:
+     */
+    virtual TInt hal_em_cha_charge(TInt action);
+    virtual TInt hal_em_cha_charge_pause(TInt action);
+    virtual TInt hal_em_cha_set_target_voltage(TInt mV);
+    virtual TInt hal_em_cha_set_termination_current(TInt mA);
+    virtual TInt hal_em_cha_set_in_current(TInt mA);
+    virtual TInt hal_em_cha_set_out_current(TInt mA);
+    virtual TInt hal_em_cha_set_min_vbus_volt(TInt mv);
+    virtual TInt hal_em_cha_set_charging_source(THalEmChaSource source);
+
+    /*
+     * IBAT
+     */
+    virtual TInt hal_em_ibat_read();
+    virtual TUint hal_em_ibat_sample_time();
+    virtual TUint hal_em_ibat_avg_time_get();
+    virtual TInt hal_em_ibat_avg_time_set(TUint number);
+    virtual TInt hal_em_ibat_avg_get();
+    virtual TInt hal_em_ibat_avg_start();
+    virtual TInt hal_em_ibat_avg_stop();
+    virtual TInt hal_em_ibat_avg_state_get();
+
+    /*
+     * VBAT
+     */
+
+    virtual TInt hal_em_vbat_initial();
+    virtual TInt hal_em_vbat_read(TUint *value);
+    virtual TInt hal_em_vbat_sync(TInt action);
+
+    /*
+     * BTEMP
+     */
+    virtual TInt hal_em_btemp_read(TUint *value);
+
+    /*
+     * BSI
+     */
+    virtual TInt hal_em_bsi_read(TUint *value);
+
+    /* WATCHDOG */
+    virtual void hal_em_watchdog();
+
+    /* DBI */
+
+    virtual TInt hal_em_dbi_init(HAL_EM_CALLBACK dbi_handler);
+    virtual TInt hal_em_dbi_authenticate(TUint8 *challenge,
+            TUint8 challengelength, TUint8 *response, TUint8 responselength);
+    virtual TInt
+            hal_em_dbi_read(TUint address, TUint length, TUint8* readbuf);
+    virtual TInt hal_em_dbi_write(TUint address, TUint length,
+            TUint8* writebuf);
+    };
+
+#endif /* EM_CHIPSET_API_H */
+/* End of Include File */
--- a/devicesrv_plat/group/bld.inf	Tue Oct 12 15:02:43 2010 +0300
+++ b/devicesrv_plat/group/bld.inf	Thu Oct 14 12:47:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -72,3 +72,7 @@
 #ifdef FF_AUTOMOTIVESTACK
 #include "../autoaudio_plugin_api/group/bld.inf"
 #endif
+#include "../light_chipset_api/group/bld.inf"
+#include "../thermal_shai_api/group/bld.inf"
+#include "../energymgmt_chipset_api/group/bld.inf"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicesrv_plat/light_chipset_api/group/bld.inf	Thu Oct 14 12:47:54 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Light chipset API definition 
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+ARMV5 ARMV5SMP
+
+PRJ_EXPORTS
+
+../inc/light_chipset_api.h     OS_LAYER_PLATFORM_EXPORT_PATH(light_chipset_api.h)
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicesrv_plat/light_chipset_api/inc/light_chipset_api.h	Thu Oct 14 12:47:54 2010 +0300
@@ -0,0 +1,130 @@
+/*
+  light_chipset_api.h
+
+  Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+  All rights reserved.
+
+  This program and the accompanying materials are made available 
+  under the terms of the Eclipse Public License v1.0 which accompanies 
+  this distribution, and is available at 
+  http://www.eclipse.org/legal/epl-v10.html
+
+  Initial Contributors:
+  Nokia Corporation - initial contribution.
+
+  Contributors:
+*/
+
+/** @file
+@brief Light Chipset API H
+
+This is the header file for Light Chipset API that is used to access 
+the light service provided by the third party chipset vendor.
+
+@publishedDeviceAbstraction
+*/
+
+#ifndef __LIGHT_CHIPSET_API_H__
+#define __LIGHT_CHIPSET_API_H__
+
+// Include files
+
+#include <kern_priv.h>
+
+
+// Constants
+
+
+// Macros
+
+
+// Data types
+
+/**  
+* RGB values.
+*
+*/
+
+struct TLightColor
+{
+    TUint8 iRed;
+    TUint8 iGreen;
+    TUint8 iBlue;
+};
+
+// Function prototypes
+
+
+// Class declaration
+
+/**
+This class defines the Chipset API that is used to access 
+the light service provided by the third party chipset vendor.
+*/
+class LightService
+    {
+    public:
+
+        /**
+        This method is used to do all the necessary initialization so 
+        that the chipset is ready to provide the light service.
+
+        @return Symbian OS system wide error code, and the followings are required: 
+                KErrNone – the operation is successfully executed
+                KErrGeneral – error condition
+                KErrAlreadyExists – if trying to initialize twice
+
+        @pre Pre-condition, it should be called first before the other methods of this class are used 
+        */
+        IMPORT_C static TInt Init();
+
+        /**
+        This function is used to set the specified output to the desired intensity.
+
+        @param aOutputId The identity of the output line that shall be controlled
+        @param aIntensity	The desired intensity of the light with range 0 – 10000 [1/100%]
+
+        @return Symbian OS system wide error code, and the followings are required: 
+                KErrNone – the operation is successfully executed
+                KErrGeneral – error condition
+                KErrNotReady –if trying to access uninitialized device
+                KErrNotSupported – if the feature is not supported by the HW
+
+        @pre Pre-condition, the method Init() has been executed successfully
+        */
+        IMPORT_C static TInt SetIntensity(TUint aOutputId, TUint16 aIntensity);
+
+        /**
+        This function is used to set the specified output to the desired PWM frequency.
+
+        @param aOutputId The identity of the output line that shall be controlled
+        @param aFrequency	The PWM frequency from 0 to the maximum frequency available from the chipset (range 0 to 65535Hz)
+
+        @return Symbian OS system wide error code, and the followings are required: 
+                KErrNone – the operation is successfully executed
+                KErrGeneral – error condition
+                KErrNotReady – if trying to access uninitialized device
+                KErrNotSupported – if the feature is not supported by the HW
+
+        @pre Pre-condition, the method Init() has been executed successfully
+        */
+        IMPORT_C static TInt SetFrequency(TUint aOutputId, TUint16 aFrequency);
+        /**
+        This function is used to set the color of the LED target.
+
+        @param aOutputId The identity of the output line that shall be controlled
+        @param TLightColor	 	   The Light color structure to specify RGB values
+
+        @return Symbian OS system wide error code, and the followings are required: 
+                KErrNone – the operation is successfully executed
+                KErrGeneral – error condition
+                KErrNotReady – if trying to access uninitialized device
+                KErrNotSupported – if the feature is not supported by the HW
+
+        @pre Pre-condition, the method Init() has been executed successfully
+        */
+        IMPORT_C static TInt SetColor(TUint aOutputId, TLightColor aRGB);
+
+    };
+
+#endif // __LIGHT_CHIPSET_API_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicesrv_plat/thermal_shai_api/group/bld.inf	Thu Oct 14 12:47:54 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  File that exports the files belonging to 
+*                Thermalsensing chipset API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/pm_thermalsensing_chipset_api.h     OS_LAYER_PLATFORM_EXPORT_PATH(pm_thermalsensing_chipset_api.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicesrv_plat/thermal_shai_api/inc/pm_thermalsensing_chipset_api.h	Thu Oct 14 12:47:54 2010 +0300
@@ -0,0 +1,333 @@
+/*
+Nokia
+CONFIDENTIAL
+Deliverable software
+
+            pm_thermalsensing_chipset_api.h
+            --------------------------------
+
+            SW Include Document - Symbian OS
+
+* ============================================================================
+*  Name     : pm_thermalsensing_chipset_api.h
+*  Part of  : TP/PP/CoreSW/SASW, System Infra 
+*  Origin   : System Power Knowledge Center, Nokia Corporation
+*  Created  : Aditya Singh (16.05.2007)
+*  Description:
+*    This describes the class that determines the thermal sensor driver from a
+*  hardware dependent way for battery temperature.
+*
+*  Continuus version  :
+*    %version: 1 %,
+*    %date_modified: Tue Oct 05 17:58:12 2010 %
+*    by %derived_by: s95kumar %
+*
+*  Copyright (c) Nokia. This material, including documentation and any related
+*  computer programs, is protected by copyright controlled by Nokia. All rights
+*  are reserved. Copying, including reproducing, storing, adapting or
+*  translating, any or all of this material requires the prior written consent
+*  of Nokia. This material also contains confidential information which may
+*  not be disclosed to others without the prior written consent of Nokia.
+*  ---------------------------------------------------------------------------
+*  Version history:
+*  Template version: 1.0, 05.10.2004 by pkahonen
+*  <ccm_history>
+*
+*  Version: 1
+*  Ref: 417-41499
+*  Initial Version of Thermal Sensing HW Adaptation Driver
+*
+*  </ccm_history>
+* ============================================================================
+*/
+
+/** @file
+@brief Chipset API H Template
+
+This is a header template for Chipset API work. This template should not be
+used as a normal code template because the location of where the API is
+documented is different in normal coding style! Doxygen commenting style tries
+to be similar what Symbian is using for their kernel side development.
+
+You can define here also the scope of the whole API see below, or you can
+define the scope separately before the class or even before the function if
+that is needed.
+
+@publishedDeviceAbstraction
+ */
+
+#ifndef __PM_THERMALSENSING_CHIPSET_API_H__
+#define __PM_THERMALSENSING_CHIPSET_API_H__
+
+
+// Include files
+
+#include <kern_priv.h>
+
+/**
+Description of the function pointer
+
+@note Description Callback Function which is being executed from DFC
+
+@param TAny* Any type of parameter passed to the callback function
+ */
+typedef void (*TthermalSensorCbFn)(TAny* aParam);
+
+// Forward declarations
+
+class TthermalSensorCb;
+class ChipsetThermalSensorHWPool;
+class DThermalSensorHW;
+
+
+// Class declaration
+/**
+ *
+ * Thermal Sensor Callback function
+ *
+ */
+class TthermalSensorCb : public TDfc
+    {
+
+public :
+    /**
+        Description of TthermalSensorCb
+        This is the Thermal Sensor Callback Function
+        @param aFn        Callback Function Pointer
+        @param aParam     Any type of parameter passed to the callback function
+        @param aPriority  Priority Assigned
+        @return           KErrNone or a system wide error code to specify the effect of the method call.
+        @pre              This can be called only after the ChipsetThermalSensorHWPool has been initialized 
+                          in the system. Preferable way to call this function is from a thread context with 
+                          interrupts enabled after all the kernel extensions have been initialized in the boot up.
+     */
+    IMPORT_C TthermalSensorCb(TthermalSensorCbFn aFn, TAny *aParam, TInt aPriority);
+    /**
+        Description of TthermalSensorCb
+        This is the Thermal Sensor Callback Function
+        @param aFn        Callback Function Pointer
+        @param aParam     Any type of parameter passed to the callback function
+        @param aPriority  Priority Assigned
+        @param aQue       Interrupt Handling DFC queue. The same queue is used by the HW specific interface
+        @return           KErrNone or a system wide error code to specify the effect of the method call.
+        @pre              This can be called only after the ChipsetThermalSensorHWPool has been initialized 
+                          in the system. Preferable way to call this function is from a thread context with 
+                          interrupts enabled after all the kernel extensions have been initialized in the boot up.
+     */
+    IMPORT_C TthermalSensorCb(TthermalSensorCbFn aFn, TAny *aParam, TInt aPriority, TDfcQue* aQue);
+
+private :
+
+    static void CallbackFunc( TAny *);
+
+private :
+    /*** Any type of parameter passed to the callback function */
+    TAny* iParam;
+
+    /*** Callback Function Pointer */
+    TthermalSensorCbFn iCallback;
+
+    };
+
+/**
+@brief Class acting as a container class for several sensor objects
+
+This class acts as a repository using which the references to the specific thermal sensor
+interface can be accessed. The recommendation is to implement this as a Singleton class. 
+ */
+class ChipsetThermalSensorHWPool
+    {
+    // Methods
+public :
+    enum TthermalSensorID
+        {
+        /// Invalid Sensor ID to be used if system design does not have any thermal sensor.
+        EInvalidThermalSensor = 0x0,
+        /// Battery Specific Sensing
+        EBatteryThermalSensor,
+        /// DRAM Specific Sensing
+        EDRAMThermalSensor,
+        /// RF ASIC Specific Sensors
+        ERFThermalSensor,
+        /// Memory Card Specific Sensors
+        EMemoryCardThermalSensor,
+        /// SOC Specific Sensors
+        EAPEThermalSensor,
+        /// Camera Module Specific Sensors
+        ECameraThermalSensor,
+        /// GPS Module Specific Sensors
+        EGPSThermalSensor,
+        /// Display Module Specific Sensors
+        EDisplayThermalSensor,
+        /// Chipset Specific Sensors
+        EChipsetCustom1ThermalSensor,
+        EChipsetCustom2ThermalSensor,
+        EChipsetCustom3hermalSensor,
+        EChipsetCustom4ThermalSensor,
+        EChipsetCustom5ThermalSensor,
+        EChipsetCustom6ThermalSensor
+        };
+
+    /**
+        Description of GetThermalSensorHW
+        This is the method to get the pointer of the DThermalSensorHW object from the 
+        ChipsetThermalSensorHWPool.
+        @param aId     input parameter specifying the ID of the thermal sensor whose pointer we are 
+                       trying to reference.
+        @param aSensor output parameter giving the pointer of the thermal sensor object representing 
+                       the ID requested or NULL if the thermal sensor do not exist in the system.
+        @return        KErrNone or a system wide error code to specify the effect of the method call.
+        @pre           This can be called only after the ChipsetThermalSensorHWPool has been initialized 
+                       in the system. Preferable way to call this function is from a thread context with 
+                       interrupts enabled after all the kernel extensions have been initialized in the boot up.
+     */
+
+    IMPORT_C  static TInt GetThermalSensorHW(TthermalSensorID aId, DThermalSensorHW** aSensor);
+
+    /**
+        Description of GetNumberOfSensors
+        This is the method to get the number of sensors supported by the chipset adaptation software.  
+        In addition it should give the highest and lowest identifier for the sensors to optimize the search 
+        possibilities for the client software.
+        @param aHighestID output parameter that gives the ID of the thermal sensor with the most positive value 
+                          or 0 if no sensor is present.
+        @param aLowestID  output parameter that gives the ID of the thermal sensor with the least positive value
+                          or 0 if no sensor is present.
+        @return           number of sensors in the system (+ve value or 0) or 
+                          a system wide error code to specify the effect of the method call.
+        @pre              This can be called only after the ChipsetThermalSensorHWPool has been initialized 
+                          in the system.
+     */
+    IMPORT_C  static TInt GetNumberOfSensors(TthermalSensorID& aHighestID, TthermalSensorID& aLowestID);
+
+    };
+
+
+/**
+ *
+ * This class represents a generic thermal sensor that would be found in the HW. 
+ * The pointer of the thermal sensor object would be passed to the client who can then call the virtual methods that are exposed by this interface. 
+ *
+ */
+NONSHARABLE_CLASS( DThermalSensorHW ) : public DBase
+    {
+    public :
+        /**
+         Constructor
+         Defined as a private to prevent clients to create own instances
+         from this class
+         @since  ver 1
+         @param  none
+         @return none
+         @panic  none
+         */
+        DThermalSensorHW();
+
+        /**
+         Virtual Destructor
+         @since  ver 1
+         @param  none
+         @return none
+         @panic  none
+         */
+        virtual ~DThermalSensorHW();
+
+        /**
+         Description of InitHw
+         This is the method by which the HW is initialized in the system. 
+         The implementation has to take care that the HW is initialized only once even though this method can be called multiple times. 
+         The main motivation for this method is that the client becomes sure about the functional state of the HW after it calls this method. 
+         There are several scenarios possible when the interface is called. For example, 
+                • If the HW cannot be initialized then the implementation should return KErrNotReady or KErrNotSupported depending on the scenario. 
+                • If the HW can be initialized then the call would do the necessary initializations and reply with KErrNone. 
+                • If the HW is already initialized, then the call should return immediately without changing the HW state and return value should also be KErrNone.
+         @since  ver 1
+         @param  none
+         @return KErrNone if success
+                 otherwise system wide error code to let the client know about the status of the HW
+         @panic  none
+         @ pre   This can be called at any time after the kernel extensions have been loaded. 
+                 The preferable way to call this function is from a thread context with interrupts enabled.
+         */
+        virtual TInt InitHw() = 0;
+
+        /**
+         Description of SetupAlert
+         This is the method to set up a callback mechanism when temperature moves outside the range 
+         [alerts should occur when temperature is higher than high temperature limit (aTmpHigh) and lower than the low temperature limit (aTmpHigh – aTmpDiff)] 
+         presented in the arguments of this method. Only one client is permitted to call this API because this controls the functional behavior of the thermal sensor. 
+         If the boundary condition is already set and another client calls this method the call would not have any functional effect and the callback would not be registered.
+         @since  ver 1
+         @param  aTmpHigh The higher boundary of the temperature range in Kelvin. 
+                 The callback specified would be triggered if the temperature of the sensor becomes greater than this level
+         @param  aTmpDiff difference between THIGH and TLOW
+         @param  aCb  this is the DFC that should be queued when the temperature of the sensor moves outside the range specified by the boundaries
+         @return KErrNone if success
+                 KErrAlreadyExists if the boundary values are already specified
+                 otherwise system wide error code 
+         @panic  none
+         @pre    the preferable way to call this function is from a thread context with interrupts enabled after all the kernel extensions have been initialized in the boot up.
+         */
+        virtual TInt SetupAlert(TInt16 aTmpHigh, TInt16 aTmpDiff,TthermalSensorCb *aCb) = 0;
+
+        /**
+         Description of SetupCallBack
+         This is the method to register callbacks for the current prevailing boundary conditions for a particular sensor. 
+         This function is needed because only the controlling client is allowed to call the SetupAlert API, hence this API needs to be used by all other observer clients
+         @since  ver 1
+         @param  aCb This is the DFC that should be queued when the temperature of the sensor moves outside the range specified by the boundaries set before in the SetAlert method.
+         @return KErrNone if success
+                 otherwise system wide error code
+         @panic  none
+         @pre    The preferable way to call this function is from a thread context with interrupts enabled after all the kernel extensions have been initialized in the boot up.	
+         */
+        virtual TInt SetupCallBack(TthermalSensorCb *aCb) = 0;
+
+        /**
+         Description of StopAlert
+         This is the method to cancel callbacks or the entire alert mechanism for a particular sensor.
+         @since  ver 1
+         @param  stopAll  If this true then the Alert mechanism is stopped altogether and the sensing HW is disabled until the next InitHW is called. 
+                          It is recommended that only the client who has called SetupAlert successfully before calls this method. 
+                          In other cases only the callback function is removed. If the callback function was the one used in the SetupAlert call before 
+                          then the Alert mechanism is disabled also before the next SetupAlert is called.
+         @param  aCb      This is the DFC that should be removed from the list of callbacks.
+         @return KErrNone if success
+                 otherwise system wide error code
+         @panic  none
+         @pre    This can only be called after SetupAlert API or SetupCallback API
+                 The preferable way to call this function is from a thread context with interrupts enabled after all the kernel extensions have been initialized in the boot up.
+         */
+        virtual TInt StopAlert(TBool stopAll, TthermalSensorCb *aCb) = 0;
+
+
+        /**
+         Description of ReadTempData
+         This is the method to read temperature data from a particular sensor
+         @since  ver 2
+         @param  tmpData stores the current temperature reading
+         @param  aNewRead checks whether a new read is required for temperature
+         @return KErrNone if success
+                 otherwise system wide error code
+         @panic  none
+         @pre    The preferable way to call this function is from a thread context with interrupts enabled after all the kernel extensions have been initialized in the boot up.
+         */
+        virtual TInt ReadTempData(TInt16& tmpData, TBool aNewRead)   = 0;
+
+        /**
+         Description of PeformHWSelfTest
+         This is the method to performing self test on the underlying thermal sensor HW. This method should be self contained meaning it should be able to save the context , 
+         perform the self test and then restore the context back exactly to the state before the self test.
+         @since  ver 2
+         @param  none
+         @return KErrNone if success
+                 otherwise system wide error code
+         @panic  none
+         @pre    The preferable way to call this function is from a thread context with interrupts enabled after all the kernel extensions have been initialized in the boot up.
+         */
+        virtual TInt PerformHWSelfTest(void) = 0;
+    };
+
+#endif // __PM_THERMALSENSING_CHIPSET_API_H__
+
+// End Of File
--- a/devicesrv_pub/version_info_api/inc/versioninfo.h	Tue Oct 12 15:02:43 2010 +0300
+++ b/devicesrv_pub/version_info_api/inc/versioninfo.h	Thu Oct 14 12:47:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -83,7 +83,7 @@
 
     /**
     * Class TPlatformVersion stores platform version information.
-    * The class is used as parameter in GetVersionInfo() methods.
+    * The class is used as parameter in GetVersion() methods.
     * @since S60 3.2
     */
     class TPlatformVersion : public TVersionBase
@@ -95,10 +95,10 @@
         inline TPlatformVersion();
 
     public:
-        /**  Contains the major version. For example 3 if S60 3.2 */
+        /**  Contains the major version. For example 4 for Symbian^4 */
         TUint16 iMajorVersion;
 
-        /**  Contains the minor version. For example 2 if S60 3.2 */
+        /**  Contains the minor version. For example 0 for Symbian^4 */
         TUint16 iMinorVersion;
         };
 
--- a/devicesrv_pub/version_info_api/tsrc/bc/platformvertest/src/platformvertestcases.cpp	Tue Oct 12 15:02:43 2010 +0300
+++ b/devicesrv_pub/version_info_api/tsrc/bc/platformvertest/src/platformvertestcases.cpp	Thu Oct 14 12:47:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -51,7 +51,7 @@
 
 // ============================= LOCAL FUNCTIONS ===============================
 
-_LIT( KS60ProductIDFiles, "z:\\system\\install\\series60v*.sis" );
+_LIT( KS60ProductIDFiles, "z:\\system\\install\\Symbianv*.sis" );
 
 
 // -----------------------------------------------------------------------------
--- a/hwrmhaptics/tsrc/haptics_stif/group/envrecall.cmd	Tue Oct 12 15:02:43 2010 +0300
+++ b/hwrmhaptics/tsrc/haptics_stif/group/envrecall.cmd	Thu Oct 14 12:47:54 2010 +0300
@@ -19,8 +19,7 @@
 
 @echo Cleaning Haptics Test stubs...
 pushd ..\..\hapticstestplugins\group\
-call sbs -c armv5.test reallyclean
-call sbs -c winscw.test reallyclean
+call sbs reallyclean
 popd
 @echo Cleaning Haptics Test stubs... Finished
 
--- a/hwrmhaptics/tsrc/haptics_stif/group/envsetup.cmd	Tue Oct 12 15:02:43 2010 +0300
+++ b/hwrmhaptics/tsrc/haptics_stif/group/envsetup.cmd	Thu Oct 14 12:47:54 2010 +0300
@@ -41,9 +41,7 @@
 
 @echo Setting up Haptics Test stubs...
 pushd ..\..\hapticstestplugins\group\
-call sbs -c armv5.test reallyclean
-call sbs -c winscw.test reallyclean
-call sbs -c armv5.test
-call sbs -c winscw.test
+call sbs reallyclean
+call sbs
 popd
 @echo Setting up Haptics Test stubs... Finished
--- a/package_definition.xml	Tue Oct 12 15:02:43 2010 +0300
+++ b/package_definition.xml	Thu Oct 14 12:47:54 2010 +0300
@@ -258,6 +258,15 @@
     </meta>
     <unit bldFile="devicesrv_plat/autoaudio_plugin_api/group"/>
    </component>
+   <component id="light_chipset_api" name="Light Chipset API" class="api" filter="s60">
+    <unit bldFile="devicesrv_plat/light_chipset_api/group"/>
+   </component>
+   <component id="thermal_shai_api" name="Thermal Sensing Chipset API" class="api" filter="s60">
+    <unit bldFile="devicesrv_plat/thermal_shai_api/group"/>
+   </component>
+   <component id="energymgmt_chipset_api" name="Energy Management Chipset API" class="api" filter="s60">
+    <unit bldFile="devicesrv_plat/energymgmt_chipset_api/group"/>
+   </component>
   </collection>
   <collection id="accessoryservices" name="Accessory Services" level="framework">
    <component id="accessorymonitor" filter="s60" name="Accessory Monitor">
@@ -278,9 +287,6 @@
    <component id="tspclientmapper" filter="s60" name="TSP Client Mapper">
     <unit bldFile="accessoryservices/tspclientmapper/group"/>
    </component>
-   <component id="remotecontrolfw" name="Remote Control Framework" introduced="9.1" purpose="optional">
-    <unit bldFile="accessoryservices/remotecontrolfw/group" mrp="accessoryservices/remotecontrolfw/group/bluetooth_remotecontrol.mrp"/>
-   </component>
    <component id="gid_pc_tool" filter="s60" name="Generic ID PC Tool" target="desktop" class="tool">
     <unit bldFile="accessoryservices/gid_pc_tool/group"/>
    </component>
--- a/resourceinterfaces/fmtransmittercontrol/inc/HWRMFmTx.h	Tue Oct 12 15:02:43 2010 +0300
+++ b/resourceinterfaces/fmtransmittercontrol/inc/HWRMFmTx.h	Thu Oct 14 12:47:54 2010 +0300
@@ -179,7 +179,8 @@
         * @exception KErrInUse if reserved by another client
         *            KErrNotSupported if RSSI scanning is unsupported
         *            KErrGeneral if there is a hardware error
-        *            KErrNotReady if FM Tx is not enabled
+    	*            KErrNotReady if there is a wired accessory conflict. Some  
+    	*            accessories are mutually exclusive with FM Tx. 
         */ 
         virtual void GetNextClearFrequencyL(TInt& aClearFrequency) = 0;
 
@@ -198,7 +199,8 @@
         *            KErrArgument  If aCount is out of range
         *            KErrNotSupported if RSSI scanning is unsupported
         *            KErrGeneral if there is a hardware error
-        *            KErrNotReady if FM Tx is not enabled
+    	*            KErrNotReady if there is a wired accessory conflict. Some  
+    	*            accessories are mutually exclusive with FM Tx. 
         */ 
         virtual void GetNextClearFrequencyL(TClearFrequencyArray& aClearFrequencyArray, TUint& aCount) = 0;
 
@@ -247,7 +249,8 @@
         * @exception KErrInUse if reserved by another client.
         *            KErrNotSupported if RSSI scanning is unsupported
         *            KErrGeneral if there is a hardware error.
-        *            KErrNotReady if FM Tx is not enabled
+    	*            KErrNotReady if there is a wired accessory conflict. Some  
+    	*            accessories are mutually exclusive with FM Tx. 
         */
         virtual void SetNextClearFrequencyL(TInt& aClearFrequency) = 0;
    
--- a/resourcemgmt/hwresourcesmgr/server/inc/HWRMFmTxCommonData.h	Tue Oct 12 15:02:43 2010 +0300
+++ b/resourcemgmt/hwresourcesmgr/server/inc/HWRMFmTxCommonData.h	Thu Oct 14 12:47:54 2010 +0300
@@ -263,6 +263,14 @@
         */          
         void UpdateRdsLanguageId(const TRdsLanguageIdType aLanguageId);   
             
+        /**
+        * Setter for indicating whether audio policy should be notified.
+        *
+        * @param aEnable Enable status
+        * @param aNotifyAudioPolicy ETrue if audio policy should be notified instantly.
+        */          
+        void EnableAudioRouting(TBool aEnable, TBool aNotifyAudioPolicy = EFalse);
+            
     private:
     
         /**
@@ -315,6 +323,7 @@
         TFmTxRdsData               iRdsData;          // RDS settings
         HWRMFmTxCommand::TRdsPs    iRdsConvertedPs;   // Text converted into 8bit RDS format
         HWRMFmTxCommand::TRdsPtyn  iRdsConvertedPtyn; // Text converted into 8bit RDS format
+        TBool                   iAudioRoutingEnabled;
         
     public: // Friend classes
     
--- a/resourcemgmt/hwresourcesmgr/server/inc/HWRMFmTxService.h	Tue Oct 12 15:02:43 2010 +0300
+++ b/resourcemgmt/hwresourcesmgr/server/inc/HWRMFmTxService.h	Thu Oct 14 12:47:54 2010 +0300
@@ -87,6 +87,18 @@
 */
 class CHWRMFmTxService : public CHWRMService
     {
+    private:  // Enumerations
+    
+        /**
+        * Private enumeration to identify scan type
+        */
+        enum TFmTxScanType
+            {
+            EFmTxScanTypeNone = 0,
+            EFmTxScanTypeGet,
+            EFmTxScanTypeSet
+            };
+
     public: // Constructors and Destructor
     
         /**
@@ -311,6 +323,20 @@
         */
         void CancelPluginCommandL(HWRMFmTxCommand::TFmTxCmd aCommandId);
 
+        /**
+        * Enables transmitter for being able to scan and set free frequencies
+        * without need to explicitly enable transmitter.
+        *
+        */
+        void EnsureTransmitterOnL( const RMessage2& aMessage );
+
+        /**
+        * Resets scan request state and audio policing.
+        *
+        * @param aNotifyAudioPolicy ETrue if audio policy should be notified instantly.  
+        */
+        void ResetScanRequest( TBool aNotifyAudioPolicy = EFalse );
+
     private:  // data
 
         CHWRMPluginHandler& iWatcherPluginHandler;  // Reference to watcher plugin handler.
@@ -320,6 +346,8 @@
 
         TBool iSuspended; // Flag to indicate if this session is suspended.
         TBool iReserved;  // Flag to indicate if this session is reserved.
+        TFmTxScanType iScanRequestType;
+        TUint iClearFreqsRequired;
     };
 
 #endif  // HWRMFMTXSERVICE_H
--- a/resourcemgmt/hwresourcesmgr/server/src/HWRMFmTxCommonData.cpp	Tue Oct 12 15:02:43 2010 +0300
+++ b/resourcemgmt/hwresourcesmgr/server/src/HWRMFmTxCommonData.cpp	Thu Oct 14 12:47:54 2010 +0300
@@ -278,13 +278,20 @@
         THWRMFmTxAvailableFlag nowAvailable = FmTxAvailableState(newState);
         THWRMFmTxAvailableFlag wasAvailable = FmTxAvailableState(iFmTxState);
 
+        COMPONENT_TRACE3( _L("HWRM Server - CHWRMFmTxCommonData::UpdateStatus - nowAvailable: %d, wasAvailable: %d"), 
+            nowAvailable, wasAvailable ); 
         if ( nowAvailable != wasAvailable )
             {
-            COMPONENT_TRACE2(_L("HWRM Server - CHWRMFmTxCommonData::UpdateStatus - Audio Policy notification: %d"), nowAvailable );
-            TInt err = iFmTxIsAvailableProperty.Set(nowAvailable);      
-            if ( err != KErrNone )
+            COMPONENT_TRACE2( _L("HWRM Server - CHWRMFmTxCommonData::UpdateStatus - iAudioRoutingEnabled: %d"), 
+                iAudioRoutingEnabled ); 
+            if ( iAudioRoutingEnabled )
                 {
-                COMPONENT_TRACE2( _L("HWRM Server - CHWRMFmTxCommonData::UpdateStatus - Audio Policy notification failed: %d"), err );
+                COMPONENT_TRACE2(_L("HWRM Server - CHWRMFmTxCommonData::UpdateStatus - Audio Policy notification: %d"), nowAvailable );
+                TInt err = iFmTxIsAvailableProperty.Set(nowAvailable);      
+                if ( err != KErrNone )
+                    {
+                    COMPONENT_TRACE2( _L("HWRM Server - CHWRMFmTxCommonData::UpdateStatus - Audio Policy notification failed: %d"), err );
+                    }
                 }
             
             // Update power save status if Fm Tx is available
@@ -534,6 +541,26 @@
     }
     
 // -----------------------------------------------------------------------------
+// CHWRMFmTxCommonData::EnableAudioRouting
+// Enables or disables audio routing
+// -----------------------------------------------------------------------------
+//
+void CHWRMFmTxCommonData::EnableAudioRouting(TBool aEnable, TBool aNotifyAudioPolicy)
+    {
+    COMPONENT_TRACE3( _L("HWRM Server - CHWRMFmTxCommonData::EnableAudioRouting %d, %d"), 
+            aEnable, aNotifyAudioPolicy );
+    iAudioRoutingEnabled = aEnable;
+    if ( aNotifyAudioPolicy )
+        {
+        TInt err = iFmTxIsAvailableProperty.Set( aEnable );      
+        if ( err != KErrNone )
+            {
+            COMPONENT_TRACE2( _L("HWRM Server - CHWRMFmTxCommonData::EnableAudioRouting - Audio Policy notification failed: %d"), err );
+            }
+        }
+    }
+    
+// -----------------------------------------------------------------------------
 // CHWRMFmTxCommonData::SetFrequencyRange
 // Set the Central Repository data, frequency range and step size
 // -----------------------------------------------------------------------------
--- a/resourcemgmt/hwresourcesmgr/server/src/HWRMFmTxService.cpp	Tue Oct 12 15:02:43 2010 +0300
+++ b/resourcemgmt/hwresourcesmgr/server/src/HWRMFmTxService.cpp	Thu Oct 14 12:47:54 2010 +0300
@@ -41,7 +41,8 @@
                                    CHWRMFmTxRdsTextConverter& aRdsTextConverter)
     : iWatcherPluginHandler(aWatcherPluginHandler),
       iFmTxCommonData(aFmTxCommonData), 
-      iRdsTextConverter(aRdsTextConverter)
+      iRdsTextConverter(aRdsTextConverter),
+      iScanRequestType(EFmTxScanTypeNone)
     {
     COMPONENT_TRACE1( _L( "HWRM Server - CHWRMFmTxService::CHWRMFmTxService()" ));
     COMPONENT_TRACE1( _L( "HWRM Server - CHWRMFmTxService::CHWRMFmTxService - return" ));
@@ -234,6 +235,7 @@
             {
             COMPONENT_TRACE1( _L("HWRM Server - CHWRMFmTxService::ExecuteMessageL - EHWRMFmTxCancelGetNextClearFreq") );
 
+            ResetScanRequest();
             CancelPluginCommandL( HWRMFmTxCommand::ETxScanRequestCmdId );
             completeMessage = ETrue; // no responses from plugin cancel commands
             }
@@ -252,6 +254,7 @@
             {
             COMPONENT_TRACE1( _L("HWRM Server - CHWRMFmTxService::ExecuteMessageL - EHWRMFmTxCancelSetNextClearFreq") );
 
+            ResetScanRequest();
             // no hope of cancelling the ESetTxFrequencyCmdId part, so try the ETxScanRequestCmdId
             CancelPluginCommandL( HWRMFmTxCommand::ETxScanRequestCmdId );
             completeMessage = ETrue; // no responses from plugin cancel commands
@@ -379,6 +382,7 @@
     COMPONENT_TRACE2( _L( "HWRM Server - CHWRMFmTxService::EnableL(0x%x)" ), aMessage.Int0() );
 
     LeaveIfOtherReservationL();
+    ResetScanRequest( iFmTxCommonData.IsFmTxHardwareOn() ); 
 
     // We cannot enable from "power save" state
     if ( iFmTxCommonData.IsAccessoryPowerSaveOn() )
@@ -414,6 +418,7 @@
     COMPONENT_TRACE1( _L( "HWRM Server - CHWRMFmTxService::DisableL" ) );
 
     LeaveIfOtherReservationL();
+    ResetScanRequest(); 
 
     // We don't need to disable HW from some states
 	if ( !iFmTxCommonData.IsFmTxHardwareOn() )
@@ -486,12 +491,18 @@
 
     LeaveIfOtherReservationL();
 
-    LeaveIfTransmitterOffL();
-
-    // package up the request
-    HWRMFmTxCommand::TScanRequestPackage pckg(aClearFreqsRequired);
-
-    ExecutePluginCommandL(aMessage, HWRMFmTxCommand::ETxScanRequestCmdId, EFalse/*not split*/, pckg );
+    if ( !iFmTxCommonData.IsFmTxHardwareOn() )
+        {
+        EnsureTransmitterOnL( aMessage );
+        iScanRequestType = EFmTxScanTypeGet;
+        iClearFreqsRequired = aClearFreqsRequired;
+        }
+    else
+        {
+        // package up the request
+        HWRMFmTxCommand::TScanRequestPackage pckg( aClearFreqsRequired );
+        ExecutePluginCommandL(aMessage, HWRMFmTxCommand::ETxScanRequestCmdId, EFalse/*not split*/, pckg );
+        }
 
     COMPONENT_TRACE1( _L( "HWRM Server - CHWRMFmTxService::GetClearFrequencyL - return" ) ); 
     }
@@ -508,13 +519,19 @@
 
     LeaveIfOtherReservationL();
 
-    LeaveIfTransmitterOffL();
-
-    // package up the request
-    HWRMFmTxCommand::TScanRequestPackage pckg(aClearFreqsRequired);
-
-    ExecutePluginCommandL(aMessage, HWRMFmTxCommand::ETxScanRequestCmdId, ETrue/*split*/, pckg );
-    // wait until response before calling SetFrequencyL
+    if ( !iFmTxCommonData.IsFmTxHardwareOn() )
+        {
+        EnsureTransmitterOnL( aMessage );
+        iScanRequestType = EFmTxScanTypeSet;
+        iClearFreqsRequired = aClearFreqsRequired;
+        }
+    else
+        {
+        // package up the request
+        HWRMFmTxCommand::TScanRequestPackage pckg( aClearFreqsRequired );
+        ExecutePluginCommandL(aMessage, HWRMFmTxCommand::ETxScanRequestCmdId, ETrue/*split*/, pckg );
+        // wait until response before calling SetFrequencyL
+        }
 
     COMPONENT_TRACE1( _L( "HWRM Server - CHWRMFmTxService::SetNextClearFrequencyL - return" ) ); 
     }
@@ -792,10 +809,20 @@
                                                                                      EFalse ) );
                     if(data)
                     	{
+                        COMPONENT_TRACE2( _L( "HWRM Server - CHWRMFmTxService::ProcessResponseL, EStartObservingCmdId scan type = %d" ), 
+                            iScanRequestType );
+
+                    	TBool split( ( iScanRequestType != EFmTxScanTypeNone ) ? ETrue : EFalse );
                     	TRAP( pluginErr, ExecutePluginCommandL( data->iRequestMessage,
                     			HWRMFmTxCommand::ETxOnCmdId,
-                    			EFalse/*not split*/,
+                    			split,
                     			pckg ) );
+                    	
+                    	if( !pluginErr && iScanRequestType != EFmTxScanTypeNone )
+                    	    {
+                    	    // Temporarily prevent audio routing.
+                    	    iFmTxCommonData.EnableAudioRouting( EFalse );
+                    	    }
                     	}
                     else
                     	{
@@ -813,16 +840,30 @@
                 errPckg.Copy(aData);
                 pluginErr = errPckg();
 
-                COMPONENT_TRACE2( _L( "HWRM Server - CHWRMFmTxService::ProcessResponseL, ETxOnCmdId pluginErr = %d" ), pluginErr );
+                COMPONENT_TRACE3( _L( "HWRM Server - CHWRMFmTxService::ProcessResponseL, ETxOnCmdId pluginErr = %d, scan type = %d" ), 
+                    pluginErr, iScanRequestType );
 
                 if ( pluginErr == KErrNone || pluginErr == KErrInUse )
                     {
                     pluginErr = KErrNone; // If already enabled, complete client request with KErrNone
+
                     // Update common data power save
                     iFmTxCommonData.UpdatePowerSaveState( 
                                         CHWRMFmTxCommonData::EHWRMFmTxPowerSaveOff );
                     // Store the new status
                     iFmTxCommonData.UpdateStatus(CHWRMFmTxCommonData::EFmTxStateTransOn);
+
+                    // Proceed with scan command if needed.
+                    if( iScanRequestType != EFmTxScanTypeNone )
+                        {
+                        THWRMPluginRequestData* data = static_cast<THWRMPluginRequestData*>(iTransactionList->FindTransaction(aTransId, EFalse));
+                        if( data )
+                            {
+                            HWRMFmTxCommand::TScanRequestPackage pckg( iClearFreqsRequired );
+                            TBool split( ( iScanRequestType == EFmTxScanTypeSet ) ? ETrue : EFalse );
+                            ExecutePluginCommandL( data->iRequestMessage, HWRMFmTxCommand::ETxScanRequestCmdId, split, pckg );
+                            }
+                        }
                     }
                 }
                 break;              
@@ -926,7 +967,7 @@
                 scanPckg.Copy(aData);
                 HWRMFmTxCommand::TScanResponseData scanResp = scanPckg();               
                 COMPONENT_TRACE3( _L( "HWRM Server - CHWRMFmTxService::ProcessResponseL, ETxScanRequestCmdId error = %d, found = %d" ), scanResp.iErrorCode, scanResp.iFrequenciesFound );
-                                
+                
                 if ( scanResp.iErrorCode != KErrNone ||
                      scanResp.iFrequenciesFound == 0 ||
                      scanResp.iFrequenciesFound > KClearFrequencyArrayMax ) 
@@ -957,7 +998,20 @@
                         pluginErr = data->iRequestMessage.Write(0,clientClearFreqPckg);
                         }
 
-                    if ( pluginErr == KErrNone &&
+                    // Disable transmitter if scan state is still get or set (i.e. transmitter not enabled 
+                    // or disabled explicitly during scan neither accessory connected during scan).
+                    // If scan state is set, we can still just disable transmitter because frequency is 
+                    // being set upon next transmitter enabling.
+                    if ( pluginErr == KErrNone && iScanRequestType != EFmTxScanTypeNone )
+                        {
+                        ExecutePluginCommand(HWRMFmTxCommand::ETxOffCmdId);
+                        if ( iScanRequestType == EFmTxScanTypeSet )
+                            {
+                            // Store the new frequency, which is used when next time enabling transmitter
+                            iFmTxCommonData.UpdateFrequency( firstClearFreq );
+                            }
+                        }
+                    else if ( pluginErr == KErrNone &&
                          data->iRequestMessage.Function() == EHWRMFmTxSetNextClearFreq )
                         {
                         // Continue split command
@@ -1451,6 +1505,44 @@
 
     COMPONENT_TRACE1( _L( "HWRM Server - CHWRMFmTxService::CancelPluginCommandL - return" ) );     
     }
+
+// -----------------------------------------------------------------------------
+// CHWRMFmTxService::EnsureTransmitterOnL
+// Enables transmitter for being able to scan and set free frequencies.
+// -----------------------------------------------------------------------------
+//
+void CHWRMFmTxService::EnsureTransmitterOnL( const RMessage2& aMessage )
+    {
+    COMPONENT_TRACE1( _L( "HWRM Server - CHWRMFmTxService::EnsureTransmitterOnL" ) );
+
+    // Enable transmitter if not in "power save" state
+    if ( iFmTxCommonData.IsAccessoryPowerSaveOn() )
+        {
+		// We cannot enable during "power save" due to mutually exclusive accessory connection.			
+        COMPONENT_TRACE1( _L( "HWRM Server - CHWRMFmTxService::EnableL - not ready in \"power save\" state" ) );
+        User::Leave( KErrNotReady );
+        }
+    else
+        {
+        //start observing       
+        ExecutePluginCommandL( aMessage, HWRMFmTxCommand::EStartObservingCmdId, EFalse/*not split*/ );
+        }
+
+    COMPONENT_TRACE1( _L( "HWRM Server - CHWRMFmTxService::EnsureTransmitterOnL - return" ) );     
+    }
+
+// -----------------------------------------------------------------------------
+// CHWRMFmTxService::ResetScanRequest
+// Resets scan request and enables audio routing.
+// -----------------------------------------------------------------------------
+//
+void CHWRMFmTxService::ResetScanRequest( TBool aNotifyAudioPolicy )
+    {
+    COMPONENT_TRACE1( _L( "HWRM Server - CHWRMFmTxService::ResetScanRequest" ) );
+
+    iFmTxCommonData.EnableAudioRouting( ETrue, aNotifyAudioPolicy );
+    iScanRequestType = EFmTxScanTypeNone;
+    }
     
 // ========================== OTHER EXPORTED FUNCTIONS =========================
 
--- a/resourcemgmt/hwresourcesmgr/server/src/HWRMFmTxStateUtility.cpp	Tue Oct 12 15:02:43 2010 +0300
+++ b/resourcemgmt/hwresourcesmgr/server/src/HWRMFmTxStateUtility.cpp	Thu Oct 14 12:47:54 2010 +0300
@@ -258,6 +258,8 @@
 			// transition from EFmTxStatePowerSaveAccessory to EFmTxStateOff must occur.
 			iFmTxService->ExecutePluginCommand(HWRMFmTxCommand::ETxOffCmdId);
 			// Don't change iFmTxState until power down completes
+			// Enable audio routing (which may have been disabled by scan request)
+			iFmTxCommonData->EnableAudioRouting( ETrue );
             }
             break;
 
--- a/resourcemgmt/hwresourcesmgr/test/te_hwrm/hwrmtest.cpp	Tue Oct 12 15:02:43 2010 +0300
+++ b/resourcemgmt/hwresourcesmgr/test/te_hwrm/hwrmtest.cpp	Thu Oct 14 12:47:54 2010 +0300
@@ -288,6 +288,8 @@
 	ADD_TEST_STEP_ISO_CPP(CHWRMTest, TestFmTxEnableDuringPowersaveL);
 	
 #endif // INSECURE_AUDIO_POLICY_KEYS
+    ADD_TEST_STEP_ISO_CPP(CHWRMTest, TestFmTxGetNextClearFrequencyWithoutEnableL);
+
 
 	END_SUITE;
 	}
@@ -4407,7 +4409,7 @@
 	INFO_PRINTF1(_L("Start test step: TestFmTxGetNextClearFrequencyArrayL"));
 	
 	AddTestStateL(this, &CHWRMTest::FmTxOpenL, KTwoTimeUnits);
-	AddTestStateL(this, &CHWRMTest::FmTxGetNextClearFrequencyArrayWhileDisabledL, KOneTimeUnit);
+	//AddTestStateL(this, &CHWRMTest::FmTxGetNextClearFrequencyArrayWhileDisabledL, KOneTimeUnit);
 	AddTestStateL(this, &CHWRMTest::FmTxEnableL, KTwoTimeUnits);
 	AddTestStateL(this, &CHWRMTest::FmTxGetNextClearFrequencyArrayErrArgumentMinL, KOneTimeUnit);
 	AddTestStateL(this, &CHWRMTest::FmTxGetNextClearFrequencyArrayErrArgumentMaxL, KOneTimeUnit);
@@ -4639,6 +4641,17 @@
 
 #endif // INSECURE_AUDIO_POLICY_KEYS
 
+void CHWRMTest::TestFmTxGetNextClearFrequencyWithoutEnableL()
+	{
+	INFO_PRINTF1(_L("Start test step: TestFmTxGetNextClearFrequencyWithoutEnableL"));
+	
+	AddTestStateL(this, &CHWRMTest::FmTxOpenL, KTwoTimeUnits);
+	AddTestStateL(this, &CHWRMTest::FmTxGetNextClearFrequencyWithoutEnableL, KTwoTimeUnits);	
+	
+    ExecuteTestL();
+	}
+
+
 void CHWRMTest::InvalidSessionLightL()
 	{
 	INFO_PRINTF1(_L("Step state: InvalidSessionLightL"));
@@ -8697,6 +8710,28 @@
 #endif // INSECURE_AUDIO_POLICY_KEYS	
 
 
+
+void CHWRMTest::FmTxGetNextClearFrequencyWithoutEnableL()
+	{
+	INFO_PRINTF1(_L("Step state: FmTxGetNextClearFrequencyWithoutEnableL"));
+	
+	CHWRMFmTx& fmTx = GetFmTxSessionWithCallbackRegisteredL();
+
+    ExpectFmTxStatusNotificationL(EFmTxStateOff, EFmTxStateInactive); 
+    ExpectFmTxStatusNotificationL(EFmTxStateInactive, EFmTxStateOff);
+		
+	TInt clearFrequency;
+	fmTx.GetNextClearFrequencyL(clearFrequency);
+	
+	// the frequency that is returned is hard coded in the cmockfmtxengine
+	if (clearFrequency != 89000)
+		{
+		User::Leave(KErrGeneral);
+		}
+	}
+
+
+
 //
 // THE FOLLOWING STEPS AND STATES TEST LIGHT API DEPENDING ON 
 // PRODUCT-SPECIFIC PHYSICAL DEVICE CONFIGURATION (FLIP, SLIDER, ETC.
--- a/resourcemgmt/hwresourcesmgr/test/te_hwrm/hwrmtest.h	Tue Oct 12 15:02:43 2010 +0300
+++ b/resourcemgmt/hwresourcesmgr/test/te_hwrm/hwrmtest.h	Thu Oct 14 12:47:54 2010 +0300
@@ -262,6 +262,7 @@
 	void TestFmTxPowerSaveOnOffStateL();
 	void TestFmTxPowerSaveOffL();	
 #endif // INSECURE_AUDIO_POLICY_KEYS  	
+    void TestFmTxGetNextClearFrequencyWithoutEnableL();
 
 private:
 	//
@@ -752,6 +753,8 @@
 	void SetWatcherPluginConnectedStatusL(TBool aStatus );
 	void SetAudioRoutedFlagL(TBool aFlag);
 #endif // INSECURE_AUDIO_POLICY_KEYS  		
+
+    void FmTxGetNextClearFrequencyWithoutEnableL();
 	
 	// Test case utilities
 	void IncrementFrequency(TInt &aFrequency);
--- a/resourcemgmt/hwresourcesmgr/test/te_hwrm/te_hwrm_fmtx.script	Tue Oct 12 15:02:43 2010 +0300
+++ b/resourcemgmt/hwresourcesmgr/test/te_hwrm/te_hwrm_fmtx.script	Thu Oct 14 12:47:54 2010 +0300
@@ -426,4 +426,15 @@
 RUN_TEST_STEP 100 te_hwrm TEFUnit.CHWRMTest.TestFmTxEnableDuringPowersaveL
 END_TESTCASE DEVSRVS-HWRM-F-0037
 
+START_TESTCASE DEVSRVS-HWRM-F-0038
+//!@SYMTestCaseID DEVSRVS-HWRM-F-0038
+//!@SYMComponent telephony_hwrm
+//!@SYMTestCaseDesc Test scan during fmtx off
+//!@SYMTestPriority High
+//!@SYMTestActions Open a FmTx session, scan with fmtxoff.
+//!@SYMTestExpectedResults Pass
+//!@SYMTestType CT
+RUN_TEST_STEP 100 te_hwrm TEFUnit.CHWRMTest.TestFmTxGetNextClearFrequencyWithoutEnableL
+END_TESTCASE DEVSRVS-HWRM-F-0038
+
 PRINT Completed te_hwrm_fmtx tests
Binary file resourcemgmt/hwresourcesmgrconfig/conf/hwresourcesandenhancements.confml has changed
--- a/resourcemgmt/hwrmtargetmodifierplugin/tsrc/hwrmtargetmodifierplugintest/src/hwrmtargetmodifierplugintest.cpp	Tue Oct 12 15:02:43 2010 +0300
+++ b/resourcemgmt/hwrmtargetmodifierplugin/tsrc/hwrmtargetmodifierplugintest/src/hwrmtargetmodifierplugintest.cpp	Thu Oct 14 12:47:54 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  ?Description
-*  %version:  bh1dsgas#3 %, % date_modified: % by %derived_by: ravindrr %
+*  %version:  bh1dsgas#4 %, % date_modified: % by %derived_by: sarakuma %
 *
 */
 
@@ -101,11 +101,11 @@
         {
 		// To add new test cases, add new items to this array
 		{ (TText*) L"HWRM Target Modifier Plugin [CreateAndDestroy]",
-		        GETPTR CHwrmTargetModifierPluginTests::CreateAndDestroy },
+		        GETPTR &CHwrmTargetModifierPluginTests::CreateAndDestroy },
 		{ (TText*) L"HWRM Target Modifier Plugin [GetFullSystemTarget]",
-		        GETPTR CHwrmTargetModifierPluginTests::GetFullSystemTarget },
+		        GETPTR &CHwrmTargetModifierPluginTests::GetFullSystemTarget },
 		{ (TText*) L"HWRM Target Modifier Plugin [ModifyTarget]",
-		        GETPTR CHwrmTargetModifierPluginTests::ModifyTarget }
+		        GETPTR &CHwrmTargetModifierPluginTests::ModifyTarget }
         };
 
     // Verify that case number is valid
--- a/sysstatemgmt/ssmcmdlists/data/uiservicescmdlist.rss	Tue Oct 12 15:02:43 2010 +0300
+++ b/sysstatemgmt/ssmcmdlists/data/uiservicescmdlist.rss	Thu Oct 14 12:47:54 2010 +0300
@@ -94,8 +94,11 @@
         r_cmd_devicedialog,     //CR:KJLN-7WBEGU   
         // prio 0xFF77
         r_cmd_apparc_init,      // Init application framework
-        // prio 0xFF75
         r_cmd_rfspostui        // Restore factory settings - after UI framework is up
+#ifdef SYMBIAN_INCLUDE_APP_CENTRIC
+	// prio 0xFF76
+	,r_cmd_emcore		//JHOI-889FRH
+#endif // SYMBIAN_INCLUDE_APP_CENTRIC        
         };
     }
 
@@ -152,6 +155,22 @@
     execution_behaviour = ESsmWaitForSignal;
     }    
 
+#ifdef SYMBIAN_INCLUDE_APP_CENTRIC
+// ---------------------------------------------------------------------------
+// r_cmd_emcore
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_PROCESS_INFO r_cmd_emcore
+    {
+    priority = 0xFF76;
+    severity = ECmdCriticalSeverity;
+    name = "Z:\\sys\\bin\\emcore.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    retries = 5;
+    monitor_info = r_mon_3_restarts_reset;
+    }	
+#endif	// SYMBIAN_INCLUDE_APP_CENTRIC
+
 // ---------------------------------------------------------------------------
 // r_cmd_hbthemeserver
 // ---------------------------------------------------------------------------
--- a/sysstatemgmt/systemstateplugins/gsapolicy/resource/gsastartupcmdlist1.rss	Tue Oct 12 15:02:43 2010 +0300
+++ b/sysstatemgmt/systemstateplugins/gsapolicy/resource/gsastartupcmdlist1.rss	Thu Oct 14 12:47:54 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -59,6 +59,9 @@
 		, r_command_sysmon
 		, r_command_sysagt2svr
 		, r_command_ewsrv
+#ifdef SYMBIAN_INCLUDE_APP_CENTRIC
+		,r_cmd_emcore		//JHOI-889FRH
+#endif // SYMBIAN_INCLUDE_APP_CENTRIC
 		};
 	}
 
@@ -122,4 +125,21 @@
 	dsc_id = 0x2000836D;		// removing this id will cause a rcomp failure unless dsc_id is #defined in ssmcmd.rh file.
 	}
 
+#ifdef SYMBIAN_INCLUDE_APP_CENTRIC
+RESOURCE SSM_START_PROCESS_INFO r_cmd_emcore
+    {
+    severity = ECmdCriticalSeverity;
+    name = "Z:\\sys\\bin\\emcore.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    retries = 5;
+    monitor_info = r_mon_3_restarts_reset;
+    }
 
+RESOURCE SSM_MONITOR_INFO r_mon_3_restarts_reset
+    {
+    restart_policy = ESsmRestartOS;
+    restart_mode = 0;
+    retries = 3;
+    }
+
+#endif	// SYMBIAN_INCLUDE_APP_CENTRIC
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_publishsimownedandchanged.cpp	Tue Oct 12 15:02:43 2010 +0300
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_publishsimownedandchanged.cpp	Thu Oct 14 12:47:54 2010 +0300
@@ -23,7 +23,7 @@
 #include "ssmcustomcmdfactory.h"
 
 // class under test
-#include "cmdpublishSimOwnedAndChanged.h"
+#include "cmdpublishsimownedandchanged.h"
 
 // helper class
 #include "activestopper.h"